1. 程式人生 > >thinkphp 模板格式化輸出datetime型別資料

thinkphp 模板格式化輸出datetime型別資料

原理

一,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”)

strtotime("-1 month")

strtotime("-1 Year")

當前時間: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
mktime() 在做日期計算和驗證方面很有用,它會自動計算超出範圍的輸入的正確值。例如下面例子中每一行都會產生字串 "Jan-01-1998"。

<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>

以上PHP時間戳函式示例可知,strtotime能將任何英文文字的日期時間描述解析為Unix時間戳,我們結合mktime()或date()格式化日期時間獲取指定的時間戳,實現所需要的日期時間。


時間格式化輸出{$time|strtotime|date='Y-m-d',###}

date函式第一個引數的格式分別表示:
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 幾日,二位數字,若不足二位則前面補零; 如: "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 - 幾日,二位數字,若不足二位不補零; 如: "1" 至 "31"
l - 星期幾,英文全名; 如: "Friday"
m - 月份,二位數字,若不足二位則在前面補零; 如: "01" 至 "12"
n - 月份,二位數字,若不足二位則不補零; 如: "1" 至 "12"
M - 月份,三個英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序數,二個英文字母; 如: "th","nd"
t - 指定月份的天數; 如: "28" 至 "31"
U - 總秒數
w - 數字型的星期幾,如: "0" (星期日) 至 "6" (星期六)
Y - 年,四位數字; 如: "1999"
y - 年,二位數字; 如: "99"
z - 一年中的第幾天; 如: "0" 至 "365"
其它不在上列的字元則直接列出該字元