PHP DateTime :: createFromFormat不使用带时区的时间格式

时间:2013-12-10 03:55:39

标签: php datetime datetime-format

我想检查用户提交的日期时间是否与我的日期时间格式相同

DateTime::createFromFormat($format, $date)

在我将时间格式从Y-m-d H:i:s更改为Y-m-d\TH:i:s.ZP之前,它工作正常 我想得到这样的时间日期2011-11-09T17:11:57.430 + 05:00 我应该为我的功能提供什么格式?我使用的格式错了吗?

2 个答案:

答案 0 :(得分:5)

你快到了。您使用了'Z',你应该有一个'u'微秒,所以你的代码应该是这样的: -

$dateStr = '2011-11-09T17:11:57.430+05:00';
$date = \DateTime::createFromFormat('Y-m-d\TH:i:s.uP', $dateStr);
var_dump($date);

输出: -

object(DateTime)[1]
  public 'date' => string '2011-11-09 17:11:57' (length=19)
  public 'timezone_type' => int 1
  public 'timezone' => string '+05:00' (length=6)

DateTime::createFromFormat()接受的格式字符串与date()接受的格式字符串相同。

答案 1 :(得分:-1)

这是一个ISO 8601日期,您只需使用$format = 'c'即可。