Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php日期+;strotime返回错误的日期_Php_Date_Strtotime - Fatal编程技术网

php日期+;strotime返回错误的日期

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日(不正确,应该是

我的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日(不正确,应该是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
)。