我有这样的约会:2。2012年2月
我想将它转换为2012-02-02,所以我写了这段代码:
$date = '2. Februar 2012';
$date = date('Y-m-d', $date);
$ date var为空或1970-01-01之后,是错误还是丢失?
注意:日期采用德语格式,因此不是2月份,而是Februar。我从那个日期选择器那里得到了日期。
谢谢!
答案 0 :(得分:3)
您可以使用*strtotime并且还需要在strtotime函数中传递有效日期格式,因为$date
变量的格式不正确。
您有.
和拼写错误的月份名称。在传递strtotime
之前,你必须清除它们。我已经使用了str_replace
。
$date = '2. Februar 2012';
$date = date('Y-m-d', strtotime(str_replace('Februar','february',str_replace('.','', $date))));
答案 1 :(得分:2)
像这样使用:
$date = '2. February 2012';
$date = strtotime($date);
$date = date('Y-m-d', $date);
echo $date;
答案 2 :(得分:0)
使用strtotime
putenv('LC_ALL=de_DE');
putenv('LANG=de');
setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
$date = '2. Februar 2012';
$date = date('Y-m-d', strtotime($date));
答案 3 :(得分:0)
使用strtotime()
。
strtotime("2 February 2012") will return the unix timestamps.
mktime(0, 0, 0, 2, 2, 2012) will return the same unix timestamps.
如果可以运行
$ts = mktime(0, 0, 0, 2, 2, 2012);
echo date("Y-m-d H:i:s", $ts); // output 2012-02-02 00:00:00
You can run the following too
$ts = strtotime("2 February 2012");
echo date("Y-m-d H:i:s", $ts); // output 2012-02-02 00:00:00
答案 4 :(得分:0)
date()
函数需要将第一个参数作为字符串。在你的例子中没问题。 Seconds参数是可选的,它应该是整数,并且您要转换时间戳。