这一行PHP曾经在日期27/12/2013
中添加18 months
,但它似乎不再起作用了:
echo date( "d/m/Y", strtotime( "27/12/2013 +18 month") );exit;
它现在返回01/01/1970
我将不胜感激对此的任何想法。
由于d/m/Y
不是标准类型(标准是m/d/Y
、Y-m-d
或d.m.Y
),你需要重新格式化它,然后添加时间。我建议您为此使用日期时间:
$d = DateTime::createFromFormat( 'd/m/Y', '27/12/2013' );
$d->modify( '+18 month' );
echo $d->format( 'd/m/Y' );
27/12/2013 不是 PHP 的有效格式。以下是有效格式的列表。http://www.php.net/manual/en/datetime.formats.php
http://www.php.net/manual/en/datetime.formats.date.php
你会看到,DD/MM/YYYY 不是一种可接受的格式。
echo date( "d/m/Y", strtotime( "2013-12-27 +18 months") );
Output: 27/06/2015
从 strtotime 手册页:
m/d/y 或 d-m-y 格式的日期通过查看 各个组件之间的分隔符:如果分隔符是 斜杠 (/),则假设为美国 m/d/y;而如果 分隔符是破折号 (-) 或点 (.),然后是欧洲 d-m-y 格式 是假设的。为避免潜在的歧义,最好使用 ISO 8601 (YYYY-MM-DD) 日期或 DateTime::createFromFormat() 如果可能。
因此,"27/12/2013"永远不会在争论strtotime
。 您可以使用"27-12-2013"或"27.12.2013"或"2013-12-27"或"12/27/2013"...任你挑选。如上所述,我会坚持ISO 8601("2013-12-27")。
您可能需要还原日期 echo date( "d/m/Y", strtotime( "2013/12/27 +18 month") );exit;
在这里测试:https://eval.in/83396
echo date( 'd/m/Y', strtotime( "+18 months", strtotime("12/27/2013 ")) );