php 写mysql日期,PHP,Mysql日期和时间整理

工作一年,收获了很多,慢慢做些总结,提升工作效率,

工作中mysql使用的时间是一个UNIX时间戳:从1970年1月1日0点开始到当前时间的秒数,由于是int类型,很方便的适用于计算机处理,不仅仅是php和mysql的数据交互的一种格式,在各种客户端,也是数据交互的标准(android/IOS)等,因此如果只是保存和显示日期的时候,应该使用UNIX时间戳来计算日期和做为标准的日期格式。

工作中常用的流程是:将HTML页面的时间转化为时间戳保存到mysql中,从mysql中取出时间戳格式化展示在web或手机客户端。总之mysql中保存的时间是UNIX时间戳,然后被PHP格式化为合适的时间

介绍几个常用的函数

1.date(),2.mktime(),3.getdate(),4.strftime()

1.date()

PHP中获取时间和日期

使用date()函数:将时间戳或当前时间转化成格式化的字符串,例如:

echo date('Y-i-s');//输出2014-3-25

2.mktime()

使用mktime()将时间转化成UNIX时间戳

$timestamp = mktime();

获取当前时间戳有三种方法:

mktime(),time(),date('U')

mktime做时间运算

mktime(12,0,0,$mon,$day+10,$year);十天以后的时间戳

3.getdate()函数:

$today = getdate();

print_r($today);

//输出

Array

(

[seconds] => 38

[minutes] => 38

[hours] => 22

[mday] => 25

[wday] => 2

[mon] => 3

[year] => 2014

[yday] => 83

[weekday] => Tuesday

[month] => March

[0] => 1395758318

)

使用checkdate()函数检验日期有效性

4.strftime()

格式化时间戳

mysql格式化时间

1.DATE_FORMAT()

2.UNIX_TIMESTAMP()返回格式化成UNIX时间戳的日期,例如:SELECT UNIX_TIMESTAMP(date) FROM table,这样就可以在PHP中处理了

PHP中格式化时间的函数比较少,介绍几个常用的格式化时间函数

/**

*

*将timestamp时间转化为x时x分x秒

*

*/

public static function getTimeLong($seconds) {

if (!$seconds) {

return '0秒';

}

$ret = '';

if ($seconds >= 3600) {

$hours = (int)($seconds / 3600);

$seconds = $seconds % 3600;

if ($hours) {

$ret .= ($hours . '时');

}

}

if ($seconds >= 60) {

$mi = (int)($seconds / 60);

$seconds = $seconds % 60;

if ($mi) {

$ret .= ($mi . '分');

}

}

if ($seconds) {

$ret .= ($seconds . '秒');

}

return $ret;

}

/**

* 将相差timestamp转为如“1分钟前”,“3天前”等形式

*

* @param timestamp $ts_diff 当前时间 - 要格式化的timestamp

*/

public static function formatTime($ts_diff)

{

if ($ts_diff <=0)

{

return date('Y-m-d');

}

else if ( $ts_diff <= 3600 )

{

return max(1, (int)($ts_diff/60)) . '分钟前';

}

else if ( $ts_diff <= 86400 )

{

return ((int)($ts_diff/3600)) . '小时前';

}

else

{

return ((int)($ts_diff/86400)) . '天前';

}

}

/** 将数字星期转换成字符串星期 weekNum2String($num)

* @param int

* @return string

*/

public static function weekNum2String($num){

switch($num){

case 1:

return '星期一';

case 2:

return '星期二';

case 3:

return '星期三';

case 4:

return '星期四';

case 5:

return '星期五';

case 6:

return '星期六';

case 7:

return '星期日';

default:

return '未知';

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值