中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中Y2K38的漏洞的解決方法

發布時間:2021-06-30 17:49:06 來源:億速云 閱讀:135 作者:chen 欄目:開發技術

這篇文章主要講解了“php中Y2K38的漏洞的解決方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php中Y2K38的漏洞的解決方法”吧!

本文實例分析了php中Y2K38漏洞的解決方法。分享給大家供大家參考。具體分析如下:

Y2K38,又稱 Unix Millennium Bug, 此漏洞將會影響到所有 32 位系統下用 UNIX 時間戳整數來記錄時間的 PHP,及其它編程語言。

一個整型的變量所能保存的最大時間為 2038 年 1 月 19 日 03:14:07。超過這個時間后,整型數值將會溢出。

從 1970 年 01 月 01 日開始,到世界標準時 2038 年 01 月 19 日星期二凌晨 03:14:07 超過 2^31 – 1。2^31 – 1 就是 0x7FFFFFFF,相信很多編程員都看過,在 32 位系統里,這表示最大的有符號整數。如果用它來表示秒數,大概相當于 68.1 年,從 1970 年到 2038 年剛好是這個數。

32位系統下顯示2038年1月19日03:14:07以后的日期將會溢出。

<?php
$date = '2040-01-01 12:00:00';
echo strtotime($date);           // 空 溢出
echo date('Y-m-d H:i:s', strtotime($date)); // 1970-01-01 00:00:00
?>

那么64 位系統會受到影響嗎?

理論上不會,強烈建議進行一下測試。64 位系統下可以保存的日期最遠日期是現在宇宙年齡的 21 倍~ 292 億年。

在32位機器上,可以使用DateTime類來解決這個問題。(PHP5.2開始引入這個類,并在5.3版本中擴展了一些方法)

代碼如下:

<?php
$date = '2040-01-01 12:00:00';
$dt = new DateTime($date);
echo $dt->format('U');      // 2209032000
echo $dt->format('Y-m-d H:i:s'); // 2040-01-01 12:00:00 
?>

感謝各位的閱讀,以上就是“php中Y2K38的漏洞的解決方法”的內容了,經過本文的學習后,相信大家對php中Y2K38的漏洞的解決方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

安丘市| 兰考县| 巴中市| 秦皇岛市| 清水县| 伊金霍洛旗| 福州市| 瑞昌市| 余姚市| 民勤县| 蓬溪县| 洪湖市| 安泽县| 巴东县| 西盟| 江永县| 宁河县| 孝感市| 周宁县| 泊头市| 鹿邑县| 彭州市| 固安县| 铁岭市| 庆云县| 临桂县| 高州市| 通江县| 巴中市| 措美县| 衡南县| 哈尔滨市| 建昌县| 河西区| 南川市| 东海县| 宁河县| 成武县| 长白| 龙南县| 温宿县|