我有一個mktime函數有趣的問題。我查看了之前在這裏提供的解決方案,沒有一個似乎得到解決或幫助(strotime不會改變我看到的結果)。mktime強制日期到1969年12月
我有一份月度報告,我正在努力爲用戶儘可能提供防錯功能,所以我只需要一個月和一年的時間。我將在代碼中提供報告的最佳日子。
我的表單有幾個月的下拉選項,而月份的值是兩位數的整數(01,02等)。年份是四位數字,由用戶手動填寫。
直到2038年,每件作品都非常出色......我知道,這是一段很長的路,但項目應該有20年的歷史,所以在過去的兩年裏,我是遇到問題。
這裏是我如何收到表格的信息:
$month = filter_var($_POST["month"], FILTER_SANITIZE_NUMBER_INT);
$year = filter_var($_POST["year"], FILTER_SANITIZE_NUMBER_INT);
然後,我用mktime的月和年與我的一天(27日)合併: $的timeStamp = mktime(0,0 ,0,$月份,27,$年);然後我把它賦給一個MySQL喜歡的日期形式的變量: $ reportdate = date('Y-m-j',$ timeStamp);
我回應了$月和$年的結果,他們正確地發現,但是當我回顯$ reportdate時,它總是說12/31/1969。
03
2038
1969-12-31
無論我選擇哪個月都無所謂。 2037年12月完美報道,除此之外的任何事情都失敗
這是可以修復的東西嗎?或者我只是不得不說,這就是cookie崩潰的方式......?
是的。使用無符號整型而不是有符號整型。 – Johan
PHP中沒有這樣的功能,因爲整數在內部表示爲signed。 – nickb
這也是在文檔中解釋http://php.net/manual/en/function.mktime.php – Dancrumb