2013-03-08 106 views
0
$str = date("d")+1 . date("-m") . date("-y"); 
$date = new DateTime($str); 
echo $date->format('y-m-d '); 

這正常格式化,但...字符串修改混亂在PHP

$str = date("d")+1 . date("-m") . date("-y"); 
$date = new DateTime($str); 
echo $date->format('d-m-Y '); 

奇怪的是,無論是給不同的日期

我認爲這是由於DateTime構造,但有一個這個簡單的解決方法?

+0

他們輸出什麼?是13-03-07和07-03-2013? – 2013-03-08 02:36:37

+0

類似的東西... – 2013-03-08 02:38:11

+2

改進你的代碼,如下所示:'$ date = new DateTime('+ 1 day')' – 2013-03-08 02:38:59

回答

2

在日期格式中使用大寫字母Y會爲您提供四位數的年份。使用小寫字母y只會給你兩位數字。

+0

我認爲它適用,如果我使用小寫字母y,但我想要四位數字。 – 2013-03-08 02:39:34

+0

您必須在'$ date-> format'中使用大寫'Y'來獲取四位數字。像'$ date-> format('d-m-Y')'或$ date-> format('Y-m-d')' – 2013-03-08 02:41:45

+0

選擇一個答案? – 2013-03-08 02:55:04

2

Yy是不同的。

但問題是,如果你只是想明天的日期,不寫這樣的代碼,只需使用:

$date = new DateTime('+1 day'); 
echo $date->format('Y-m-d'); 

如果你不小心的時候,那麼你可以甚至使用:

$date = new DateTime('tomorrow'); 
+0

ah okkkkkkkkkkkkkkkk – 2013-03-08 02:42:16

0

,而無需手動添加上字符串date()功能可以使用對象modify

$str = date("d") . date("m") . date("y"); 
$time = new DateTime($str); 
$time->modify("+1 day"); 
echo $time->format("d-m-y"); 

更好的方法:

$time = new DateTime("+1 day"); 
echo $time->format("d-m-y");