剛剛查了官方文件,實際測試過,PHP 在 32 位元的版本,最大值為「2147483647」,而到了 64 位元的版本,則變成「9223372036854775807」,差距還滿大的。
也許乍看之下沒有什麼特別的,但是只要是使用時間戳記(timestamp)的人都知道,整數是最常用來記錄這個資料的方法,但是「2147483647」這個數字代表的是 2038 年 1 月19 日,使用它難保不會遇到下一個類似百年蟲的東西。
現在好啦!官方文件提到只要使用 64 位元版本的 PHP ,整數就如同 MySQL 的 BIGINT 型態一樣的「9223372036854775807」。不單單是時間戳記,許多使用流水號的使用也可以用它,不需要使用浮點數或是字串處理,節省系統處理需要花費的效能。
升級 PHP 從 32 位元到 64 位元,總比要一行一行改寫程式好得多。看來只要把資料庫的欄位由 INT 改成 BIGINT ,其它的不敢說,至少在我有生之年,時間戳記都能夠順利正常的運作。
沒有留言:
張貼留言