一,PHP時間戳函數獲取指定日期的unix時間戳 strtotime(」2009-1-22″) 示例以下:
echo strtotime(」2009-1-22″) 結果:1232553600
說明:返回2009年1月22日0點0分0秒時間戳
二,PHP時間戳函數獲取英文文本日期時間 示例以下:
便於比較,使用date將當時間戳與指定時間戳轉換成系統時間
(1)打印明天此時的時間戳strtotime(」+1 day」)
當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2009-01-22 09:40:25
指定時間:echo date(」Y-m-d H:i:s」,strtotime(」+1 day」)) 結果:2009-01-23 09:40:25
(2)打印昨天此時的時間戳strtotime(」-1 day」)
當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2009-01-22 09:40:25
指定時間:echo date(」Y-m-d H:i:s」,strtotime(」-1 day」)) 結果:2009-01-21 09:40:25
(3)打印下個星期此時的時間戳strtotime(」+1 week」)
當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2009-01-22 09:40:25
指定時間:echo date(」Y-m-d H:i:s」,strtotime(」+1 week」)) 結果:2009-01-29 09:40:25
(4)打印上個星期此時的時間戳strtotime(」-1 week」)
當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2009-01-22 09:40:25
指定時間:echo date(」Y-m-d H:i:s」,strtotime(」-1 week」)) 結果:2009-01-15 09:40:25
(5)打印指定下星期幾的時間戳strtotime(」next Thursday」)
當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2009-01-22 09:40:25
指定時間:echo date(」Y-m-d H:i:s」,strtotime(」next Thursday」)) 結果:2009-01-29 00:00:00
(6)打印指定上星期幾的時間戳strtotime(」last Thursday」)
當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2009-01-22 09:40:25
指定時間:echo date(」Y-m-d H:i:s」,strtotime(」last Thursday」)) 結果:2009-01-15 00:00:00
以上PHP時間戳函數示例可知,strtotime能將任何英文文本的日期時間描述解析爲Unix時間戳,咱們結合mktime()或date()格式化日期時間獲取指定的時間戳,實現所須要的日期時間。
示例:
<?php
//時間戳轉日期
$date_time_array = getdate(1297845628); //1311177600 1316865566
$hours = $date_time_array["hours"];
$minutes = $date_time_array["minutes"];
$seconds = $date_time_array["seconds"];
$month = $date_time_array["mon"];
$day = $date_time_array["mday"];
$year = $date_time_array["year"];
echo "year:$year\nmonth:$month\nday:$day\nhour:$hours\nminutes:$minutes\nseconds:$seconds\n";
//正常日期轉時間戳
echo mktime(0, 0, 0, 9, 18, 2011) . "\n";
echo mktime(0, 0, 0, 9, 25, 2011) . "\n";
//能夠對此進行格式化
echo "time()顯示年月日時分秒:" . date("Y-m-d H:i:s", time()) . "\n";
//這樣連時,分秒一塊兒顯示
echo "time()只顯示年月日:" . date("Y-m-d ", time()) . "\n"; //只年示年月日
echo "時間戳格式化:" . date("Y-m-d H:i:s", 1297845628) . "\n"; //直接使用時間戳
//把正常日期轉成時間戳了,這裏若是有時分秒也是同理,
$year=((int)substr("2008-12-04",0,4));//取得年份
$month=((int)substr("2008-12-04",5,2));//取得月份
$day=((int)substr("2008-12-04",8,2));//取得幾號
echo mktime(0,0,0,$month,$day,$year);
?>
須要注意的部分<一>、PHP時間大的來分有兩種,一是時間戳類型(1228348800),二是正常日期格式(2008-12-4)<二>、php5.1以上時間戳會與實際時間相差8小時,解決辦法以下一、最簡單的方法就是不要用php5.1以上的版本--顯然這是不可取的方法!!!二、修改php.ini。打開php.ini查找date.timezone 去掉前面的分號= 後面加Asia/Shanghai,重啓apache服務器便可--缺點就是若是程序放到別人的服務器上,不能修改php.ini,那就奈何不得了。三、在程序中添加時間的初始化的語句的 即:「date_default_timezone_set("Asia/Shanghai"); 」這個能夠由程序員任意設置,個人推薦。時區標識符,大陸內地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次爲中國,重慶,上海,烏魯木齊) ,Etc/GMT-8,Asia/Harbin港臺地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次爲澳門,香港,臺北)還有新加坡:Asia/Singapore這樣就能夠實現輸出的是北京時間了