我正试图改变这种日期格式:
2011年11月10日星期四下午10:37
采用ISO 8601格式(使用PHP)。我怎样才能做到这一点?我试过了:
date("c", $row2['time'])
显然,这是不正确的,因为timeago jQuery插件说“41年前”,这绝对不是41年前。
是否无法将此类日期转换为ISO 8601格式?
我已尝试搜索此内容,但我没有找到任何有关如何将此格式转换为ISO 8601的解决方案。
答案 0 :(得分:4)
您可以使用可能使用DateTime::createFromFormat或strtotime创建的DateTime对象:
<?php
date_default_timezone_set('America/New_York');
$date = 'Thursday, November 10th, 2011 at 10:37 PM';
$date = str_replace( 'at', '', $date);
echo date("c", strtotime( $date));
编辑:以下是使用对象的DateTime示例。请注意,对于这两个示例,您应该从valid timezone strings列表中设置正确的时区。
$date_obj = DateTime::createFromFormat( 'l, F jS, Y \at h:i A', 'Thursday, November 10th, 2011 at 10:37 PM', new DateTimeZone( 'America/New_York'));
echo $date_obj->format('c');
答案 1 :(得分:2)