PHP提供了多種獲取時間和日期的函數,除了通過time()函數獲取當前的UNIX時間戳外,調用getdate()函數確定當前時間,通過gettimeofday()函數獲取某一天中的具體時間。此外,在PHP中還可以通過date_sunrise()和date_sunset兩個函數,獲取某地點某天的日出和日落時間。
①調用getdate()函數取得日期/時間信息
getdate()函數返回一個時間戳組成的關鍵數組,參數需要一個可選的UNIX時間戳。如果沒有給出時間戳,則認為是當前本地時間。總共返回11個數組元素,如下表所示。
如果將“2009年10月1日,07:30:50 EDT”轉變為UNIX時間戳1254382250表示,並將其傳給getdate()函數,查看各數組元素如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php
Array(
[seconds] => 50
[minutes] => 30
[hours] => 7
[mday] => 1
[wday] => 4
//一周中日的數值表示
[mon] => 10
[year] => 2009
[yday] => 273
//一年中日的數值表示
[weekday] => Thursday
//一周中日的完整文本表示
[month] => October
//月份的完整文本表示
[0] => 1254382250
//自從UNIX紀元開始至今的秒數
)
?>
|
②日期和時間格式化輸出
當日期和時間需要保存或計算時,應該使用UNIX時間戳作為標准格式,這可以作為一條重要的規則。但UNIX時間戳的格式可讀性比較差,所以把時間戳格式化作為可讀性更好的日期和時間,或格式化為其他軟件需要的格式。在PHP中可以調用date()函數格式化一個本地時間和日期,該函數的原型如下所示:
string date(string format[,int timestamp]) //格式化一個本地時間和日期
該函數有兩個參數,第一個參數是必須的,規定時間戳的轉換格式。第二個參數是可選的,需要提供一個UNIX時間戳。如果沒有這個UNIX時間戳,默認值為time()將返回當前時間的日期和時間。該函數將返回一個格式化后表示適當日期的字符串。date()函數的常見調用方式如下所示:
echo date(“Y年m月d日 H:i:s”); //輸出當前的時間格式
date()函數中的第一個參數,是通過下表中所提供的特定字符組成的格式化字符串。如果在格式化字符串中的字符前加上反斜杠來轉義,可以避免它被按照下表解釋。如果加上反斜杠后的字符本身就是一個特殊序列,那么還要轉義反斜線。格式字串中不能被識別的字符將原樣顯示。下表給出PHP中所支持的日期格式代碼。
表中包含了可用於data()函數的所有格式化參數,該函數按照這些參數指定的值生成一個字符串表示。要格式化其他語種的日期,應該用setlocale()和strftime()函數來代替date()。


