关注联楷|返回首页 | 网站案例 | 帮助中心

合作共赢、快速高效、优质的网站建设提供商

上海网站建设 

服务热线:021-61394118

上海联楷科技

php时间戳与日期格式互转

作者:佚名   时间:2012-04-07   分享到:

PHP时间存储时有两种,一是时间戳类型(1279852657)像一串数字,二是正常日期格式(2010-7-23) 。
正常日期类型是保存为DATE型的。

取得当前的时间戳,这样就取得当前的时间戳了。

要转回2010-7-23这种日期格式就要用到date()函数了,在PHP中date()函数比较常用。如取得当前日期,

那么,怎样把时间戳类型(1279852657)转成正常日期格式(2010-7-23)呢?代码如下:

这样基本就可以了,'Y-m-d H:i:s'是现实日期的格式,具体可自行修改。

反之呢?把正常日期格式(2010-7-23)转为时间戳类型(1279852657)呢?请看如下代码:

$year=((int)substr("2010-7-23",0,4));//取得年份

$month=((int)substr("2010-7-23",5,2));//取得月份

$day=((int)substr("2010-7-23",8,2));//取得几号

echo mktime(0,0,0,$month,$day,$year);

?>

这样就能把正常日期转成时间戳了,这里如果有时分秒也是同理,

$year=((int)substr($datetime,0,4));
$month=((int)substr($datetime,5,2));
$day=((int)substr($datetime,8,2));
$hour=((int)substr($datetime,11,2));
$minute=((int)substr($datetime,14,2));
$second=((int)substr($datetime,17,2));

echo mktime($hour,$minute,$second,$month,$day,$year);

?>

注意一下,你可能会发现现实的时间好像有差,PHP时差问题。解决办法:

1、修改php.ini。打开php.ini查找date.timezone 去掉前面的分号= 后面加Asia/Shanghai,重启apache服务器即可--缺点就是如果程序放到别人的服务器上,不能修改php.ini,那就奈何不得了。

2、在程序中添加时间的初始化的语句,即:或者这个可以由程序员任意设置,我的推荐。
时区标识符,大陆内地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为中国,重庆,上海,乌鲁木齐) ,Etc/GMT-8,Asia/Harbin
港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)
还有新加坡:Asia/Singapore

这样就可以实现输出的是北京时间了
 



如没特殊注明,文章均为上海联楷网络原创,转载请注明来自:http://www.linksj.com/contact/20151229/n7705.html

上海联楷网络新闻