php基础知识【函数】(4)时间date

时间:2023-03-09 05:25:31
php基础知识【函数】(4)时间date

一、time() -- 返回当前的 Unix 时间戳

$nextWeek = time() + (7 * 24 * 60 * 60);

echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";

二、mktime(时/分/秒/月/天/年) -- 取得一个日期的 Unix 时间戳

echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));  //Jan-01-1998

echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));   //Jan-01-1998

echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));    //Jan-01-1998

echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));      //Jan-01-1998

三、strtotime--将任何英文文本的日期时间描述解析为 Unix 时间戳

$time=time();

echo strtotime("now"), "\n";

echo strtotime("10 September 2000"), "\n";

echo strtotime("+1 day",$time), "\n";

echo strtotime("+1 week",$time), "\n";

echo strtotime("+1 week 2 days 4 hours 2 seconds",$time), "\n";

echo strtotime("next Thursday",$time), "\n";

echo strtotime("last Monday",$time), "\n";

四、date -- 格式化一个本地时间/日期

1、年

Y--4位数字完整表示的年份,例如:1999

y--2位数字表示的年份,例如:99

L--是否为闰年,如果是闰年为 1,否则为 0

2、月

M--三个字母缩写表示的月份,Jan 到 Dec

m--数字表示的月份,有前导零,01 到 12

F--月份,January 到 December

n--数字表示的月份,没有前导零,1 到 12

t--给定月份所应有的天数,28 到 31

3、日

d--月份中的第几天,有前导零的 2 位数字,01 到 31

S--每月天数后面的英文后缀,2 个字符,st,nd,rd 或者 th。

4、星期

D--星期中的第几天,文本表示,3 个字母,Mon 到 Sun

l(“L”的小写字母)--星期几,Sunday 到 Saturday

N--星期中的第几天,1(表示星期一)到 7(表示星期天)

w[小写]--星期中的第几天,数字表示,0(表示星期天)到 6(表示星期六)

  5、年份中的天数和星期

z--年份中的第几天,0 到 366

W[大写]--年份中的第几周,每周从星期一开始,例如:42(当年的第 42 周)

6、时间

a--小写的上午和下午值,am 或 pm

A--大写的上午和下午值,AM 或 PM

g--小时,12 小时格式,没有前导零

G--小时,24 小时格式,没有前导零

h--小时,12 小时格式,有前导零

H--小时,24 小时格式,有前导零

i--有前导零的分钟数

s--秒数,有前导零

7、设定默认时区 

date_default_timezone_set('UTC');

// 假定今天是:2001.3.10, 5:16:18 pm

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm

$today = date("m.d.y");                         // 03.10.01

$today = date("j, n, Y");                       // 10, 3, 2001

$today = date("Ymd");                           // 20010310

$today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01

$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // It is the 10th day.

$today = date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001

$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m is month

$today = date("H:i:s");                         // 17:16:17

五、getdate -- 取得日期/时间信息

$today = getdate();

print_r($today);

Array(

[seconds] => 40

[minutes] => 58

[hours]   => 21

[mday]    => 17  //月份中第几天的数字表示

[wday]    => 2    //星期中第几天的数字表示 0(表示星期天)到 6(表示星期六)

[mon]     => 6   //月份的数字表示

[year]    => 2003

[yday]    => 167  //一年中第几天的数字表示

[weekday] => Tuesday

[month]   => June

[0]       => 1055901520

)

gettimeofday -- 取得当前时间

print_r(gettimeofday());

Array(

[sec] => 1073504408  //自 Unix 纪元起的秒数

[usec] => 238215     //微秒数

[minuteswest] => 0   //格林威治向西的分钟数

[dsttime] => 1       //夏令时修正的类型

)

echo gettimeofday(true);//1073504408.23910,当其设为TRUE时,会返回一个浮点数。

六、localtime -- 取得本地时间

$localtime_assoc = localtime(time(), true);//如果不要true,索引将用数字表示

print_r($localtime_assoc);

Array(

[tm_sec] => 24   //秒数

[tm_min] => 3    // 分钟数

[tm_hour] => 19  //小时

[tm_mday] => 3   //月份中的第几日

[tm_mon] => 3    //年份中的第几个月,从 0 开始表示一月

[tm_year] => 105  //年份,从 1900 开始

[tm_wday] => 0    //星期中的第几天,从 0(星期天)到 6(星期六)

[tm_yday] => 92   //一年中的第几天

[tm_isdst] => 1   //夏令时当前是否生效

)