無法獲得將字符串日期增加一天的方法。php日期從數組日期增加
因此,它以30/01/2001
爲例。
$linedata[8] = 30/01/2001;
然後我使用日期分析表格格式。
$thetime = date_parse_from_format("j/n/Y",$linedata[8]);
返回值是數組。是否有可能從這個數組中增加日期,或者我應該用不同的函數解析日期?
無法獲得將字符串日期增加一天的方法。php日期從數組日期增加
因此,它以30/01/2001
爲例。
$linedata[8] = 30/01/2001;
然後我使用日期分析表格格式。
$thetime = date_parse_from_format("j/n/Y",$linedata[8]);
返回值是數組。是否有可能從這個數組中增加日期,或者我應該用不同的函數解析日期?
你不想使用date_parse_from_format()
,因爲這只是給你很多的日期部分,它需要你修改合適的部分,然後重新組裝它們。你也有閏年的問題,並在本月的最後一天工作。
你想用DateTime::createFromFormat()
它給你一個DateTime對象,它是易於使用和處理之類的東西閏年和天一個月數:
$date = DateTime::createFromFormat("j/n/Y", '30/01/2001');
$date->modify('+1 day');
echo $date->format('Y-m-d');
你可以增加這樣的日期:
$thetime["day"]++;
或
$thetime["day"] = $thetime["day"] + 1;
那麼你就可以得到遞增日期這樣
$idate = $thetime["day"]."/".$thetime["month"]."/".$thetime["year"];
2月28日非閏年會發生什麼?還是1月31日?這完全打破了。 – 2014-10-02 14:10:42
這會工作(提供$ linedata [8]包含日期):
$thetime = date('j/n/Y', strtotime($linedata[8] . ' +1 day'));
該日期格式不是[strtotime可以使用](http://php.net/manual/en/datetime.formats.date.php)。 – 2014-10-02 14:09:15
看起來整潔但我返回錯誤,致命錯誤:調用一個非對象的成員函數modify().....它是一個PHP版本的問題? – Pat 2014-10-02 14:13:16
你使用的是什麼版本? [這將使用PHP 5.3+](http://3v4l.org/Xfo94) – 2014-10-02 14:17:06
版本是5.4.22。我只是檢查了修改功能,並應該罰款爲5.2.0 – Pat 2014-10-02 14:20:01