下面的代码工作正常,直到$ dt4被创建(英国格式),$ dt1适用于德语格式,$ dt2适用于荷兰格式,$ dt3适用于美国格式,$ dt4失败,因为它说它是不正确的格式,所以它无法解析它,所以我尝试在创建$ dt4之前使用setlocale来en_GB,但它没有帮助,任何想法?
$dt = new DateTime('13.03.2014');
echo $dt->format('Y-m-d');
$dt2 = new DateTime('13-03-2014');
echo $dt2->format('Y-m-d');
$dt3 = new DateTime('03/13/2014');
echo $dt3->format('Y-m-d');
setlocale(LC_ALL, 'en_GB');
$dt4 = new DateTime('13/03/2014');
echo $dt4->format('Y-m-d');
答案 0 :(得分:0)
DateTime
的构造函数似乎并不关心我从此页面收集的描述有效Date Formats的语言环境。相反,请试试DateTime::createFromFormat。
答案 1 :(得分:0)
试试这个:
<?php
$date = DateTime::createFromFormat('d.m.Y', '13.03.2014', new DateTimeZone('Europe/Berlin'));
echo $date->format('Y-m-d');
你可以交换&#d; m.Y&#39;对于您需要的任何输入格式,不要忘记设置DateTimeZone。