我的POST变量中有一些短日期。
如果我这样做:
$i = 0;
foreach ($data->week as $week) {
$date = $_POST['date'.($i+1)];
echo $date;
...
$i++;
}
它返回正确的短日期,例如09.12。和12.12。
如果我这样做
echo date('d.m.Y', strtotime($date));
它将于09.12.2013(正确)和2013年12月9日返回(不正确,应该是12.12.2013)。
安迪的想法?
答案 0 :(得分:2)
您对strtotime
的使用不正确。通过此类调用,它将为当前日期应用时间值。就像:
var_dump(date('d.m.Y H:i:s', strtotime('12.12')));//09.12.2013 12:12:00
var_dump(date('d.m.Y H:i:s', strtotime('11.12')));//09.12.2013 11:12:00
相反,您应该使用DateTime
API createFromFormat()
方法。
答案 1 :(得分:1)
是否阻止您使用 DateTime
类? ;)
做这样的事情
<?php
$dt = '12.12';
$ctime = DateTime::createFromFormat('d.m', $dt);
echo $ndate= $ctime->format('d.m.Y'); // "prints" 12.12.2013