我正在尝试使用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
有没有人有解决方案或者知道为什么我会得到时区偏移?
答案 0 :(得分:8)
您可以直接在MySQL中执行此操作:
SELECT DATE_FORMAT(yourfield, '%Y-%m-%dT%H:%i:%s0Z')
还有一个GET_FORMAT(datetime, 'iso')
调用,但它返回ISO 9075的格式字符串,这不是你想要的。由于它不直接执行8601,因此您必须自己构建格式字符串。
答案 1 :(得分:3)
'c'将返回整个日期,包括时区偏移。您必须使用其他选项手动构建它。试试这个:
$time_stamp = time();
echo date('o-m-N',$time_stamp)."T".date('H:i:s',$time_stamp)."Z";
答案 2 :(得分:1)
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));
答案 3 :(得分:1)
简单的Open Graph
date('Y-m-d\TH:i', strtotime('2015/09/24 08:46:50))
答案 4 :(得分:1)
另一种方式:
substr(date('c',strtotime($Timestamp)),0,-6).'Z';