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

Jam*_*mol 2 php datetime datetime-format

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

DateTime::createFromFormat($format, $date)
Run Code Online (Sandbox Code Playgroud)

它工作正常,直到我改变我的时间格式Y-m-d H:i:s,Y-m-d\TH:i:s.ZP 我希望得到像这样的时间2011-11-09T17:11:57.430 + 05:00我应该给我的功能什么格式?我使用的格式错了吗?

vas*_*ite 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);
Run Code Online (Sandbox Code Playgroud)

输出: -

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)
Run Code Online (Sandbox Code Playgroud)

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