看板 Database 關於我們 聯絡資訊
MySQL 5.1 + PHP 5.2.9-2 計算法1: SQL : YEAR(NOW()-birth) PHP : if($pOld>1999) $pOld=$pOld-2000; if($pOld>999) $pOld=$pOld-1900; 先用MySQL算出年差 再從MySQL的YEAR函數原本 00-69 => 2000-2069 70-99 => 1970-1999 回算回二位數數字 看起來語法很簡單, 可是實際上可能出問題 一方面這個語法只能用到2069 另一方面是當這個值丟給YEAR時是從1970年起算, 會有閏年的差 計算法2: (YEAR(CURDATE())-YEAR(birth)) - (RIGHT(CURDATE(),5)<RIGHT(birth,5)) 這是我目前網路上查到最精簡的計算方法,精度已經到日了 計算法3: (YEAR(CURDATE())-YEAR(birth)) - (SUBSTRING(NOW(),6)<SUBSTRING(birth,6)) 自己改的, 精度可以到秒 計算法4: FLOOR((NOW()-birth)/10000000000) 利用MySQL時間計算的特性 可是這樣有考慮到大小月閏年嗎? ================================== 想問的是.....難道這麼基本的問題....還得自己寫程式碼來算嗎.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.180.163 ※ 編輯: SmallBeeWayn 來自: 122.116.180.163 (05/06 10:52)
KC73:有時候問題的關鍵不是「能不能做」,而是「該不該做」。 05/08 22:31