我正在尝试使用 timeago ( http://timeago.yarp.com/ ),并找到了使用 php 将时间戳从 MYSQL 转换为 ISO-8601 的解决方案。
date('c',strtotime($TimeStamp));
这工作正常,除了我在最后得到时区偏移量
2011-07-10T08:46:50-**05:00**
我想要的是2011-07-10T08:46:50Z
有没有人有解决方案或知道为什么我得到时区偏移?
我正在尝试使用 timeago ( http://timeago.yarp.com/ ),并找到了使用 php 将时间戳从 MYSQL 转换为 ISO-8601 的解决方案。
date('c',strtotime($TimeStamp));
这工作正常,除了我在最后得到时区偏移量
2011-07-10T08:46:50-**05:00**
我想要的是2011-07-10T08:46:50Z
有没有人有解决方案或知道为什么我得到时区偏移?
您可以直接在 MySQL 中执行此操作:
SELECT DATE_FORMAT(yourfield, '%Y-%m-%dT%H:%i:%s0Z')
还有一个GET_FORMAT(datetime, 'iso')
调用,但它返回 ISO 9075 的格式字符串,这不是您想要的。由于它不直接做 8601,所以你必须自己构建格式字符串。
'c' 将返回整个日期,包括时区偏移量。您必须使用其他选项手动构建它。尝试这个:
$time_stamp = time();
echo date('o-m-N',$time_stamp)."T".date('H:i:s',$time_stamp)."Z";
http://php.net/manual/en/class.datetime.php#datetime.constants.types
const string ISO8601 = "Y-m-d\TH:i:sO";
您可以使用自己的格式:
date('Y-m-d\TH:i:s\Z',strtotime($TimeStamp));
简单的开放图
date('Y-m-d\TH:i', strtotime('2015/09/24 08:46:50))
另一种方式:
substr(date('c',strtotime($Timestamp)),0,-6).'Z';