PHP Date/Time 簡介
Date/Time 函數(shù)允許您從 PHP 腳本運行的服務器上獲取日期和時間。您可以使用 Date/Time 函數(shù)通過不同的方式來格式化日期和時間。
注釋:這些函數(shù)依賴于服務器的本地設置。使用這些函數(shù)時請記住要考慮夏令時和閏年。
PHP date() 函數(shù)用于對日期或時間進行格式化。
PHP Date() 函數(shù)
PHP Date() 函數(shù)把時間戳格式化為更易讀的日期和時間。
語法
date(format,timestamp)
參數(shù)
描述
format 必需。規(guī)定時間戳的格式。
timestamp 可選。規(guī)定時間戳。默認是當前時間和日期。
注釋:時間戳是一種字符序列,它表示具體事件發(fā)生的日期和事件。
Note:
有效的時間戳典型范圍是格林威治時間 1901 年 12 月 13 日 20:45:54 到 2038 年 1 月 19 日 03:14:07。(此范圍符合 32 位有符號整數(shù)的最小值和最大值)。不過在 PHP 5.1 之前此范圍在某些系統(tǒng)(如 Windows)中限制為從 1970 年 1 月 1 日到 2038 年 1 月 19 日。
Note:
要將字符串表達的時間轉換成時間戳,應該使用 strtotime()。此外一些數(shù)據(jù)庫有一些函數(shù)將其時間格式轉換成時間戳(例如 MySQL 的 ? UNIX_TIMESTAMP 函數(shù))。
獲得簡單的日期
date() 函數(shù)的格式參數(shù)是必需的,它們規(guī)定如何格式化日期或時間。
下面列出了一些常用于日期的字符:
d - 表示月里的某天(01-31)
m - 表示月(01-12)
Y - 表示年(四位數(shù))
1 - 表示周里的某天
其他字符,比如 "/", "." 或 "-" 也可被插入字符中,以增加其他格式。
下面的例子用三種不同方法格式今天的日期:
實例
<?php echo "今天是 " . date("Y/m/d") . "<br>"; echo "今天是 " . date("Y.m.d") . "<br>"; echo "今天是 " . date("Y-m-d") . "<br>"; echo "今天是 " . date("l"); ?>
通過 PHP mktime() 創(chuàng)建日期
date() 函數(shù)中可選的時間戳參數(shù)規(guī)定時間戳。如果您未規(guī)定時間戳,將使用當前日期和時間(正如上例中那樣)。
mktime() 函數(shù)返回日期的 Unix 時間戳。Unix 時間戳包含 Unix 紀元(1970 年 1 月 1 日 00:00:00 GMT)與指定時間之間的秒數(shù)。
語法
mktime(hour,minute,second,month,day,year)
下面的例子使用 mktime() 函數(shù)中的一系列參數(shù)來創(chuàng)建日期和時間:
實例
<?php $d=mktime(9, 12, 31, 6, 10, 2015); echo "創(chuàng)建日期是 " . date("Y-m-d h:i:sa", $d); ?>
運行實例
通過 PHP strtotime() 用字符串來創(chuàng)建日期
PHP strtotime() 函數(shù)用于把人類可讀的字符串轉換為 Unix 時間。
語法
strtotime(time,now)
下面的例子通過 strtotime() 函數(shù)創(chuàng)建日期和時間:
實例
<?php $d=strtotime("10:38pm April 15 2015"); echo "創(chuàng)建日期是 " . 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 date("Y-m-d H:i:s");獲取當前時間相差8小時解決辦法
從php5.1.0開始,php.ini里加了date.timezone這個選項,并且默認情況下是關閉的也就是顯示的時間(無論用什么php命令)都是格林威治標準時間和我們的時間(北京時間)差了正好8個小時。
關于timezone 大陸內地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi ,PRC(依次為重慶,上海,烏魯木齊,中華人民共和國)港臺地區(qū)可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,臺北)還有新加坡:Asia/Singapore其它:Etc/GMT-8 ,Singapore ,Hongkong
解決方法一:
再添加時間前 插入:CODE:(好像不用加) date_default_timezone_set(PRC);
解決方法二:
echo date("Y-m-d H:i:s", time()+8*60*60);
解決方法三(修改php.ini文件):
找到php.ini中的“;date.timezone =”這行,將“;”去掉,改成“date.timezone = PRC”(PRC:People's Republic of China 中華人民共和國),重啟Apache,問題解決。
附:date時間格式
date("Y-m-d H:i:s"); 顯示的格式: 年-月-日 小時:分鐘:秒
相關時間參數(shù):
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 幾日,二位數(shù)字,若不足二位則前面補零; 如: "01" 至 "31"
D - 星期幾,三個英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小時制的小時; 如: "01" 至 "12"
H - 24 小時制的小時; 如: "00" 至 "23"
g - 12 小時制的小時,不足二位不補零; 如: "1" 至 12"
G - 24 小時制的小時,不足二位不補零; 如: "0" 至 "23"
i - 分鐘; 如: "00" 至 "59"
j - 幾日,二位數(shù)字,若不足二位不補零; 如: "1" 至 "31"
l - 星期幾,英文全名; 如: "Friday"
m - 月份,二位數(shù)字,若不足二位則在前面補零; 如: "01" 至 "12"
n - 月份,二位數(shù)字,若不足二位則不補零; 如: "1" 至 "12"
M - 月份,三個英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序數(shù),二個英文字母; 如: "th","nd"
t - 指定月份的天數(shù); 如: "28" 至 "31"
U - 總秒數(shù)
w - 數(shù)字型的星期幾,如: "0" (星期日) 至 "6" (星期六)
Y - 年,四位數(shù)字; 如: "1999"
y - 年,二位數(shù)字; 如: "99"
z - 一年中的第幾天; 如: "0" 至 "365"
如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答??! 點擊進入論壇