在php中要把時間日期轉換成時間戳記(轉換成毫秒)我們有很多方法,最簡單的就是利用time()直接擷取的是毫秒如果是如2012-05-31這樣的話,有要用其它方法了。
mktime()函數對計算日期和確認日期有效性來說是非常有用的。它將自動為超過範圍以外的輸入計算正確的值:
| 代碼如下 |
複製代碼 |
"); echo(date("M-d-Y",mktime(0,0,0,14,1,2001))." "); echo(date("M-d-Y",mktime(0,0,0,1,1,2001))." "); echo(date("M-d-Y",mktime(0,0,0,1,1,99))." ");?> |
The output of the code above would be:
上述代碼將輸出下面的結果:
Jan-05-2002Feb-01-2002Jan-01-2001Jan-01-1999 不用多解釋了吧!
| 代碼如下 |
複製代碼 |
$now = mktime(0,0,0,date("m"),date("d"),date("Y")); echo "now is ".date("Y/m/d", $now); |
顯示結果:
now is 2012/05/30
顯然這不是我想要的結果。
於是,按照舊有的思維,我想當然的改造成下面這個形式:
| 代碼如下 |
複製代碼 |
$now = mktime(date("h"),date("M"),date("s"),date("m"),date("d"),date("Y")); echo "now is ".date("Y/M/d h:i:s", $now); |
注意紅色的部分,通常如果月份用m,那麼分鐘就應該是M。或者前者用M,後者用m。
顯示結果:
Warning: mktime() expects parameter 2 to be long, string given in D:usrwebroottestPHPindex.php on line 46
now is 1970/01/01 08:Jan:00
看來主觀臆斷是不可取的,PHP的文法和其他的語言還是有些區別的。
不賣關子了,還是直接給大家正確的答案
| 代碼如下 |
複製代碼 |
$now = mktime(date("h"),date("i"),date("s"),date("m"),date("d"),date("Y")); echo "now is ".date("Y/m/d h:i:s", $now); |
哈哈~是“i”而不是什麼m或者M,這裡給出大家這個樣本只是想讓PHP的初學少走一些彎路。
至於M是什麼意思,大家自己做一下就明白了...嘿嘿!!!
顯示結果:
| 代碼如下 |
複製代碼 |
now is 2012/05/30 04:54:25 |
好了,
mktime() 函數返回一個日期的 Unix 時間戳記。
參數總是表示 GMT 日期,因此 is_dst 對結果沒有影響。
參數可以從右至左依次空著,空著的參數會被設為相應的當前 GMT 值。
文法
mktime(hour,minute,second,month,day,year,is_dst)
| 參數 |
描述 |
| hour |
可選。規定小時。 |
| minute |
可選。規定分鐘。 |
| second |
可選。規定秒。 |
| month |
可選。規定用數字表示的月。 |
| day |
可選。規定天。 |
| year |
可選。規定年。在某些系統上,合法值介於 1901 - 2038 之間。不過在 PHP 5 中已經不存在這個限制了。 |
| is_dst |
可選。如果時間在日光節約時間(DST)期間,則設定為1,否則設定為0,若未知,則設定為-1。 自 5.1.0 起,is_dst 參數被廢棄。因此應該使用新的時區處理特性。 |
http://www.bkjia.com/PHPjc/629128.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/629128.htmlTechArticle在php中要把時間日期轉換成時間戳記(轉換成毫秒)我們有很多方法,最簡單的就是利用time()直接擷取的是毫秒如果是如2012-05-31這樣的話,有要用...