这行PHP用于将18 months
添加到日期27/12/2013
,但它似乎不再起作用了:
echo date( "d/m/Y", strtotime( "27/12/2013 +18 month") );exit;
现在返回01/01/1970
我很感激对此有任何想法。
答案 0 :(得分:3)
由于d/m/Y
不是标准类型(标准为m/d/Y
,Y-m-d
或d.m.Y
),因此您需要重新格式化它,然后添加时间。我建议您使用DateTime:
$d = DateTime::createFromFormat( 'd/m/Y', '27/12/2013' );
$d->modify( '+18 month' );
echo $d->format( 'd/m/Y' );
答案 1 :(得分:1)
2013年12月27日不是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
答案 2 :(得分:0)
你需要恢复日期 回音日期(“d / m / Y”,strtotime(“2013/12/27 +18 month”));退出;
答案 3 :(得分:0)
通过查看,可以消除m / d / y或d-m-y格式的日期 各个组件之间的分隔符:如果分隔符是a 斜线(/),然后是美国m / d / y;而如果 separator是短划线( - )或点(。),然后是欧洲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”)。
答案 4 :(得分:0)
echo date( 'd/m/Y', strtotime( "+18 months", strtotime("12/27/2013 ")) );