PHP 遇到 2023年的問題該如何解決

2021-06-21 12:06:44 字數 906 閱讀 3338

**

tsung's blog 

2023年是很多系統都會遇到的問題(於 2023年1月19日3時14分07秒 會跳回 1970 或其他時間), 詳細可見: 2023年問題

php 在 2038 年的計算上, 也都做好相關的處理囉~

傳統 strtotime()、date() 於 32bits 與 64bits 系統差異

<?php

$date = '2040-02-01';

$format = 'l d f y h:i';

$mydate1 = strtotime($date);

echo date($format, $mydate1); // wednesday 01 february 2040 00:00 就是正確結果

?>

若是 64bits 的系統, 不用修改任何程式, 就可以避開 2023年 的問題囉~使用 datetime 來處理日期 2023年的問題

php 於 5.2.0 版以後, 提供了 datetime 的物件, 不用管 32bits / 64bits 都可以解決 2023年的問題.

<?php

$date = '2040-02-01';

$format = 'l j f y h:i';

$mydate2 = new datetime($date);

echo $mydate2->format($format); // wednesday 01 february 2040 00:00 就是正確結果

?>

以後程式要多用 datetime 來處理, 之後再來把相對應的 function 做個對照表.

PHP轉換超過2023年的日期出錯問題解決

最近在寫乙個專案介面。測試中發現伺服器上測試正常的功能,在本地一直有問題。一步步的排查,最終鎖定問題是由於函式strtotime返回了乙個false值,導致資料插入資料庫失敗。相同 執行結果不一樣,原因那就是環境不一致導致。要麼是php版本不同,要麼是位數不同。我電腦是64位的。這裡是php位數不一...

php中遇到的問題

warning mktime expects parameter 4 to be long,string given in e wwwroot chinesesunfish install install.php on line 238 win2003的時期格式和php的格式不大一樣 所以 post...

PHP編譯遇到的問題

編譯php的時候遇到的問題 編譯 報錯資訊 configure error please reinstall the libcurl distribution easy.h should be in include curl 解決辦法 yum install curl devel 再次編譯報錯 co...