PHP 日期和時間
PHP date() 函數用於對日期或時間進行格式化。
PHP Date() 函數
PHP Date() 函數把時間戳格式化為更容易讀取的日期和時間。
#註解:時間戳記是一種字元序列,它表示特定事件發生的日期和事件。
獲得簡單的日期
date() 函數的格式參數是必要的,它們規定如何格式化日期或時間。
下面列出了一些常用於日期的字符:
· d - 表示月裡的某天(01-31)
· m - 表示月(011 -12)
· Y - 表示年(四位數)
· 1 - 表示周中的某天
其他字符,如"/", ". " 或"-" 也可插入字元中,以增加其他格式。
下面的範例用三種不同方法格式今天的日期:
#實例
<?php echo "今天是 " . date("Y/m/d") . "<br>"; echo "今天是 " . date("Y.m.d") . "<br>"; echo "今天是 " . date("Y-m-d") . "<br>"; echo "今天是 " . date("l"); ?>
PHP 提示- 自動版權年份
使用date() 函數在您的網站上自動更新版本年份:
實例
#© 2010-<?php echo date("Y")?>
獲得簡單的時間
以下是常用時間的字元:
· h - 以首位零的12 小時小時格式
· i -附首零的分鐘
· s - 有首位零的秒(00 -59)
· a - 小寫的午前與午後(am 或pm 或pm)##am 或pm #下面的範例以指定的格式輸出目前時間:
實例
<?php echo "现在时间是 " . date("h:i:sa"); ?>
註解:請注意PHP date() 函數會傳回伺服器的目前日期/時間!
取得時區如果從程式碼回傳的不是正確的時間,有可能是因為您的伺服器位於其他國家或被設定為不同時區。
因此,如果您需要基於特定位置的準確時間,您可以設定要使用的時區。
下面的範例把時區設定為"Asia/Shanghai",然後以指定格式輸出目前時間:
實例
<?php date_default_timezone_set("Asia/Shanghai"); echo "当前时间是 " . date("h:i:sa"); ?>
透過PHP mktime() 建立日期
date() 函數中可選的時間戳參數規定時間戳記。如果您未規定時間戳,將使用當前日期和時間(正如上例中)。
mktime() 函數傳回日期的 Unix 時間戳記。 Unix 時間戳包含 Unix 紀元(1970 年 1 月 1 日 00:00:00 GMT)與指定時間之間的秒數。
語法
mktime(hour,minute,second,month,day,year)
下面的範例使用mktime() 函數中的一系列參數來建立日期和時間:
實例
<?php $d=mktime(9, 12, 31, 6, 10, 2015); echo "创建日期是 " . date("Y-m-d h:i:sa", $d); ?>
透過PHP strtotime() 用字串來建立日期
PHP strtotime() 函數用來把人類可讀的字串轉換為Unix 時間。
語法
strtotime(time,now)
下面的範例透過strtotime() 函數建立日期和時間:
實例
<?php $d=strtotime("10:38pm April 15 2015"); echo "创建日期是 " . date("Y-m-d h:i:sa", $d); ?>
PHP 在將字串轉換為日期這方面非常聰明,所以您能夠使用各種值:
實例
<?php $d=strtotime("tomorrow"); echo date("Y-m-d h:i:sa", $d) . "<br>"; $d=strtotime("next Saturday"); echo date("Y-m-d h:i:sa", $d) . "<br>"; $d=strtotime("+3 Months"); echo date("Y-m-d h:i:sa", $d) . "<br>"; ?>
不過,strtotime() 並不完美,所以請記得檢查放入其中的字串。
更多日期實例
下例輸出下週六的日期:
實例
<?php $startdate = strtotime("Saturday"); $enddate = strtotime("+6 weeks",$startdate); while ($startdate < $enddate) { echo date("M d", $startdate),"<br>"; $startdate = strtotime("+1 week", $startdate); } ?>
下例輸出七月四日之前的天數:
實例
<?php $d1=strtotime("December 31"); $d2=ceil(($d1-time())/60/60/24); echo "距离十二月三十一日还有:" . $d2 ." 天。"; ?>