我得到一個奇怪的日期(01/01/1970年00:00:00)當我運行在PHP下面的代碼:添加年內今天的日期在PHP
$now = date('d/m/Y H:i:s', time());
$exp = date('d/m/Y H:i:s', strtotime($now .'+100 years'));
我得到一個奇怪的日期(01/01/1970年00:00:00)當我運行在PHP下面的代碼:添加年內今天的日期在PHP
$now = date('d/m/Y H:i:s', time());
$exp = date('d/m/Y H:i:s', strtotime($now .'+100 years'));
我會嘗試的東西像這樣
$date = new DateTime();
$exp = $date->modify('+100 years')->format('d/m/Y H:i:s');
謝謝。它的工作原理 –
請嘗試以下操作之一。
$now = date('d/m/Y H:i:s', strtotime('+100 years'));
輸出=> 26/06/2117 18時58分07秒
這給出了相同的結果嘗試運行此操作。 –
@NiravJoshi It是否給出了正確的答案,請重新檢查。 –
不,它不是..我只是試過你的代碼.. –
嘗試此代碼:
<?php
$year = date('Y-m-d H:i:s', strtotime('+5 years'));
echo $year;
?>
輸出:
2022年6月26日13: 29:07
什麼發生???爲什麼你們給予負面的印記,這段代碼工作正常? – RaMeSh
試試這個
date('d/m/Y H:i:s', strtotime('+100 years'));
輸出: -
26/06/2117 09:31:15
爲什麼downvote?什麼是錯的? – Narayan
它,因爲你給了這個功能strtotime($now .'+100 years')
錯誤的日期格式,並返回false
。
嘗試:
echo date('d/m/Y H:i:s', strtotime("+100 year"));
「時間戳的有效範圍一般爲週五,1901年12月13日20時45分54秒UTC到星期二,2038年1月19日3時14分07秒UTC(這些。是對應於最小和最大值爲32位有符號整數日期)」
$d = date('Y-m-d', strtotime('+5 years'));
你顯然落入一個或兩個以下問題:
/
作爲分隔符,其中,strtotime
解釋日內個月,反之亦然;如可以在documentation page for strtotime
(Notes paragraph)讀:在第m日期/ d/y或DMY格式通過查看 的各種組件之間的分隔符消除歧義:如果分離器是 斜槓(/) ,那麼假設美國的m/d/y;而如果 分隔符是破折號( - )或點(。),則歐洲DMY格式 假定
這可以通過從改變你的第一線容易地固定:
$now = date('d\m\Y H:i:s', time());
到:
$now = date('d-m-Y H:i:s', time());
時間戳的有效範圍一般爲週五,1901年12月13日20時45分54秒 UTC到星期二,2038年1月19日03:14:07 UTC。 (這些是對應於最小值和最大值爲32位日期 簽署 整數)
如果這是你的情況,你最好使用datetime對象(如其他建議here),這不吃虧這個限制。這裏有一個線,應該工作:
$exp = date_format(date_create("+100 years"), 'd/m/Y H:i:s');
什麼在你的代碼的情況是:
strtotime
回報false
false
到date
功能,which expects an int
的第二個參數時,false
被轉換爲0
,這使得date
返回Epoch Time。ups,我迷路了,試圖讓答案足夠清楚,沒有注意到這麼多人已經回答了:/ – mapofemergence
無論如何,我的回答是符合@aynber暗示格式化的是什麼[Bernhard](https://stackoverflow.com/a/44761257/8200213)和[tilz0R](https:// stackove rflow.com/questions/44760770/add-years-to-todays-date-in-php/44762681#comment76502249_44760770)表示約32位的限制。 我的解決方案與[Ivan G's](https://stackoverflow.com/a/44760826/8200213)非常相似。 我在Stack Overflow上還是比較新的:如果我的回覆是多餘的,讓我知道,我會刪除它 – mapofemergence
我相信時間長達2099與strtotime。使用'DateTime'類和'format'方法。 – tilz0R
你可能會遇到這個問題:https://en.wikipedia.org/wiki/Year_2038_problem – Doug
[strtotime](http://php.net/manual/en/function.strtotime.php)不喜歡你的格式:'通過查看各種組件之間的分隔符來消除m/d/y或dmy格式中的日期:如果分隔符是斜線(/),則假定美國m/d/y;而如果分隔符是破折號( - )或點(。),則假定歐洲的d-m-y格式。然而,如果年份是兩位數格式,分隔符是短劃線( - ,日期字符串被解析爲ymd.' – aynber