修改Date短名称格式化日期字符串

时间:2016-01-16 14:53:23

标签: php

我想在日期字符串上使用datetime-> modify函数,格式为“2016年1月21日”。当我使用datetime->修改并添加1天时,它给出了2017年4月30日的结果。我知道如果我不使用短月份名称而是使用数字(即01),它将起作用很好,但我想以短月名称这样做。这可能吗?

请参阅以下代码:

<?php
$date = "21 Jan 2016"; //  this is my date string
$newdate = new DateTime($date ); 
$date2 = $newdate->modify('+1 day'); // add 1 day to date string
echo $date2->format("d-M-Y"); 
?>

结果是:

30-APR-2017

结果通缉

22-JAN-2016

2 个答案:

答案 0 :(得分:2)

问题是您正在尝试从非ISO格式创建DateTime对象。那部分不起作用。

看看:http://php.net/manual/ro/datetime.createfromformat.php

你需要像

这样的东西
DateTime::createFromFormat('d M Y', '21 Jan 2016');

完整示例:

$tomorrow = DateTime::createFromFormat('d M Y', '21 Jan 2016')->modify('+1 day')->format("d-M-Y");
echo($tomorrow);

答案 1 :(得分:0)

$date变量的格式不正确。在我的脑海中,有两种简单的方法可以解决这个问题:

您的日期格式错误。就是这样。