0x01 checkdate() 验证一个格利高里日期.
其实是验证一个日期是否合法。返回值为bool型,参数由左至右分别是月、日、年。
bool checkdate ( int $month , int $day , int $year )
<?php
echo checkdate(7,6,2018);//1
0x02 date() 格式化一个本地时间/日期
string date ( string $format [, int $timestamp ] )
<?php
echo date('Y-M-D');//2018-Jan-Fri
echo date('y-M-D');//18-Jan-Fri
echo date('Y-m-d');//2018-01-12
形式很多参见手册。
注意,后面的可选参数是时间戳,如果省略则返回当前时间,如果没省略则返回该时间戳的时间。
0x03 getdate()
array getdate ([ int $timestamp = time() ] )
返回一个数组print_r(getdate())
"Array
(
[seconds] => 39
[minutes] => 43
[hours] => 7
[mday] => 13
[wday] => 6
[mon] => 1
[year] => 2018
[yday] => 12
[weekday] => Saturday
[month] => January
[0] => 1515829419
)"
可以传递一个时间戳,否则为当前时间。
0x04 time()
直接获取当前时间戳
<?php
echo time().'<br>';//1515835992
echo date('H:m:s',time());//09:01:12
计算大陆时间,因为我们在东八区,所以要加上8个小时,但是时间戳是按照秒计算的,所以要把8个小时换算成秒,就是
echo date('H:m:s',time()+(60*60*8);//17:01:12
0x05 将时间转换为时间戳mktime()
int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
参数分别是时、分、秒、月、日、年,输出2018-1-13 17:43分的时间戳
<?php
echo mktime(17,43,00,1,13,2018);//1515865380
如果想输入更舒适的话可以用这个strtotime()
int strtotime ( string $time [, int $now = time() ] )
<?php
echo strtotime('2018-1-13 17:45:45');//1515865545
0x06 设置时区
date_default_timezone_set('Asia/Shanghai');
(将时区设置为上海时区)