搜尋
首頁後端開發php教程你的PHP项目中还在用时间戳么?

time()的最大范围是 1901 年 12 月 13 日 20:45:54 到 2038 年 1 月 19 日 03:14:07。

还有20年时间,这时候写项目还要用时间戳么?

如果一直用时间戳形式,到了2038年,有什么替代方案?

回复内容:

time()的最大范围是 1901 年 12 月 13 日 20:45:54 到 2038 年 1 月 19 日 03:14:07。

还有20年时间,这时候写项目还要用时间戳么?

如果一直用时间戳形式,到了2038年,有什么替代方案?

不需要担心,到时候官方会升级PHP版本解决

这个是系统的事 ,是当时设计的32位达到了上限。
可以用64位。
也可以不用管,反正到时候你肯定不再写代码了,而且,20年的时间,你确定你的项目可以活那么久?

参考资料:
http://stackoverflow.com/questions/5826219/time-after-2038
http://stackoverflow.com/questions/2012589/php-mysql-year-2038-bug-what-is-it-how-to-solve-it
https://en.wikipedia.org/wiki/Year_2038_problem

你们提问和回答之前有做过验证吗?仅仅只凭脑中一想就决定了php有2038bug?

~# date -s 2040/12/20
Thu Dec 20 00:00:00 CST 2040

~# php -r "echo time();"
2239545608

~# php -r "echo date('Ymd His;" time());
20401220 000015

当然,你们在32位的Windows xp上开发,你们活该low

必须严肃的指明一个问题:由于可能处理未来的日期,所以2038问题在少部分应用中“到时解决”也已经晚了,必须提前应对。例如:万年历、时间戳计算、贷款计算等程序。

但是与C/C++/C#/Rust这样的静态类型语言不同,PHP对整形的类型限定是极弱的——PHP的整形仅仅等同于平台上的signed int,不支持unsigned,也不支持缩短取值范围(官方文档)。

因此对PHP程序本身而言,时间戳数字和相关的DateTime对象,能够无修改的迁移到64位从而解决2038年问题。

比较麻烦的是数据库部分。目前大致的状况是:

  • MySQL的TIMESTAMP使用int32,所以只支持到2038

  • MySQL的各种兼容实现,基本上有同样的问题

  • PgSQL的timestamp底层存储使用int64,上层卡一个公元1465001年的上限值

  • SQLite根本不提供日期类型,自己用bigint存就好了

简而言之:如果你确有立刻存储2038年以后时间戳的需求,请在MySQL中直接使用BIGINT。

long够用么?php的时间戳我记得是没毫秒部分的

还在使用时间戳 别的我不知道眼前的需求当然是眼前的方法来满足和实现

ISO 8601

20年你的项目已经老掉牙了 所以不用担心 PHP版本更新下这问题就解决了

让人想起了当年的千年虫问题

请使用DateTime类来处理

想想有次做个项目,我判断如果超过了2025年,后面的逻辑就失效了,反正到时候这个项目肯定活不了那么久,就好笑。

32位MySQL也是可以使用bigint类型存储64位整数的,再不放心,你可以用varchar嘛.时间戳字段类型用bigint,64位整型最大值(2^64)/2-1=9223372036854775807足够了.服务器用64位Linux,这时PHP_INT_MAX的最大值也为(2^64)/2-1=9223372036854775807.

那个时候代码肯定不时我维护,啊哈哈哈

那个时候 = = 我不知道还写不写代码。。。。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP電子郵件:分步發送指南PHP電子郵件:分步發送指南May 09, 2025 am 12:14 AM

phpisusedforsendendemailsduetoitsignegrationwithservermailservicesand andexternalsmtpproviders,自動化intifications andMarketingCampaigns.1)設置設置yourphpenvenvironnvironnvironmentwithaweberswithawebserverserververandphp,確保themailfunctionisenabled.2)useabasicscruct

如何通過PHP發送電子郵件:示例和代碼如何通過PHP發送電子郵件:示例和代碼May 09, 2025 am 12:13 AM

發送電子郵件的最佳方法是使用PHPMailer庫。 1)使用mail()函數簡單但不可靠,可能導致郵件進入垃圾郵件或無法送達。 2)PHPMailer提供更好的控制和可靠性,支持HTML郵件、附件和SMTP認證。 3)確保正確配置SMTP設置並使用加密(如STARTTLS或SSL/TLS)以增強安全性。 4)對於大量郵件,考慮使用郵件隊列系統來優化性能。

高級PHP電子郵件:自定義標題和功能高級PHP電子郵件:自定義標題和功能May 09, 2025 am 12:13 AM

CustomHeadersheadersandAdvancedFeaturesInphpeMailenHanceFunctionalityAndreliability.1)CustomHeadersheadersheadersaddmetadatatatatataatafortrackingandCategorization.2)htmlemailsallowformattingandttinganditive.3)attachmentscanmentscanmentscanbesmentscanbestmentscanbesentscanbesentingslibrarieslibrarieslibrariesliblarikelikephpmailer.4)smtppapapairatienticationaltication enterticationallimpr

使用PHP和SMTP發送電子郵件的指南使用PHP和SMTP發送電子郵件的指南May 09, 2025 am 12:06 AM

使用PHP和SMTP發送郵件可以通過PHPMailer庫實現。 1)安裝並配置PHPMailer,2)設置SMTP服務器細節,3)定義郵件內容,4)發送郵件並處理錯誤。使用此方法可以確保郵件的可靠性和安全性。

使用PHP發送電子郵件的最佳方法是什麼?使用PHP發送電子郵件的最佳方法是什麼?May 08, 2025 am 12:21 AM

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

PHP中依賴注入的最佳實踐PHP中依賴注入的最佳實踐May 08, 2025 am 12:21 AM

使用依賴注入(DI)的原因是它促進了代碼的松耦合、可測試性和可維護性。 1)使用構造函數注入依賴,2)避免使用服務定位器,3)利用依賴注入容器管理依賴,4)通過注入依賴提高測試性,5)避免過度注入依賴,6)考慮DI對性能的影響。

PHP性能調整技巧和技巧PHP性能調整技巧和技巧May 08, 2025 am 12:20 AM

phpperformancetuningiscialbecapeitenhancesspeedandeffice,whatevitalforwebapplications.1)cachingwithapcureduccureducesdatabaseloadprovesrovessetimes.2)優化

PHP電子郵件安全性:發送電子郵件的最佳實踐PHP電子郵件安全性:發送電子郵件的最佳實踐May 08, 2025 am 12:16 AM

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。