php日期+;strotime返回错误的日期
我的POST变量中有一些短日期 如果我这样做:php日期+;strotime返回错误的日期,php,date,strtotime,Php,Date,Strtotime,我的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)); 它返回的是2013年12月9日(正确)和2013年12月9日(不正确,应该是
$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));
它返回的是2013年12月9日(正确)和2013年12月9日(不正确,应该是2013年12月12日)
Andy ideas?是阻止您使用
DateTime
类的东西吗?;)
做这样的事
<?php
$dt = '12.12';
$ctime = DateTime::createFromFormat('d.m', $dt);
echo $ndate= $ctime->format('d.m.Y'); // "prints" 12.12.2013
您对strotime的用法不正确。通过这种调用,它将应用当前日期的时间值。就像:
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
相反,您应该在其方法中使用API。为什么不执行$date。"." . 日期(Y)代码>?“09.12”是一个非常模糊、不完整、模糊的日期。你不能指望strotime知道你的意思。使用任何可用方法以指定格式显式解析日期(例如,DateTime::createFromFormat
)。