2016-01-23 95 views
-1

我希望我的$ curdate每次點擊按鈕時添加2天。 但我總是得到輸出「01-01-1970」如何使用strtotime輸出正確的日期?

我總是得到那個輸出。

這裏是我的代碼:

$curdate = date('m-d-Y'); 
$mydate=getdate(strtotime($curdate)); 
switch($mydate['wday']){ 
    case 0: // sun 
    case 1: // mon 
     $days = 2; 
     break; 
    case 2: 
     $days = 2; 
     break;  
    case 3: 
     $days = 2; 
     break; 
    case 4: 
     $days = 3; 
     break; 
    case 5: 
     $days = 4; 
     break; 
} 
echo date('m-d-Y', strtotime("$curdate +$days days")); 

我希望我的輸出是今天日期加2天。

任何人都可以幫助我嗎? 謝謝

回答

0

$curdate = date('m-d-Y');將給出格式爲-分隔符和日期前一個月的日期。

根據PHP's documented rules的strtotime()將識別日期與-分隔爲英國/歐洲格式的日期,所以像01-15-2016的日期將是無效的

編輯

$curDate = new DateTime(); 
echo $curDate->add(new DateInterval('P2D'))->format('m-d-Y'); 

$ CURDATE

+0

什麼是正確的代碼是什麼? – Adi

+0

正確的代碼將停止字符串表示和UNIX時間戳之間的黑客攻擊,並盡一切使用時間戳(甚至更好,datetime對象)和專用格式顯示目的 –

+0

這裏你的計算是針對 回聲日期正確的代碼('md-Y',strtotime(「+ $ days days」)); OMG! – Adi

0

strtotime的第一個參數是文本字符串,從現在開始有一些日期更改(沒有第二個參數),例如:

echo date('m-d-Y', strtotime("+6 days")); // add six days to now date 

所以你不需要使用$cur_date變量是:

echo date('m-d-Y', strtotime("+$days days")); 
+0

它的工作。謝謝你(y) – Adi

+0

如果答案解決了你的問題(它似乎已經完成了),那麼你應該接受給定的答案 – RamRaider

相關問題