一、时间戳
1、time() -- UTC时间戳,1970年1月1日零点以来的秒数。经实验不受php.ini中date.timezone的影响。
2、microtime() -- 返回类似"0.53294300 1584762409"的字符串,前半部分为毫秒数,后半部分同time()
microtime(true) -- 返回类似1584762409.5325的浮点数
3、mktime(hour,minute,second,month,day,year) --根据输入值得到时间戳
本函数会受到电脑时区的影响。建议使用gmmktime()函数。
4、strtotime(时间表达字符串) -- 返回时间戳
举例:
strtotime("2020-3-3 05:15:33")
strtotime("now")
strtotime("10 September 2000")
strtotime("-1 day")
strtotime("+1 week")
strtotime("+2 week 3 days 4 hours 2 seconds")
strtotime("next Thursday")
strtotime("last Monday")
二、显示
1、date(format,timestamp) --显示指定格式日期。timestamp默认为当前时间戳。
举例:echo date("Y-m-d H:i:s") 显示类似“2020-01-3 20:19:21”
date('t',strtotime("2020-4-1")); //返回2020年4月总的天数
今天:
$tdate=date("Y-m-d");
昨天:
$tdate=date("Y-m-d", strtotime("-1 day"));
明天:
$tdate=date("Y-m-d", strtotime("+1 day"));
2、getdate(时间戳) -- 返回包含日期和时间信息的数组
举例:
$d=getdate(); //不带参数则为当前时间
echo $d["hours"]."-".$d["minutes"]."-".$d["seconds"]; //时间
echo $d["year"]."-".$d["mon"]."-".$d["mday"]; //年月日
三、DateTime对象
(有待进一步理清)
$datetime = new DateTime();
$datetime->setDate(年,月,日);
$datetime->setTime(时,分,秒);
$datetime->setTimestamp(时间戳);
$datetime->format(输出格式);
函数式写法:
$date=date_create("2016-09-25");
echo date_format($date,"Y/m/d");
设置时间:
date_time_set(object,hour,minute,second);
四、运算
1、利用strtotime(运算字符串) -- 将日期时间的运算命令解析为时间戳
日期加法举例:
$d = "2018-03-12 12:15:20";
echo date("Y-m-d", strtotime("$d +1 year"));
2、date_diff() -- 日期相差
$date1=date_create("2020-03-15");
$date2=date_create("2017-12-12");
$diff=date_diff($date1,$date2);
3、date_add() -- 日期加法
举例:加上100天
$date=date_create("2020-03-15");
date_add($date,date_interval_create_from_date_string("100 days"));
echo date_format($date,"Y-m-d");
4、date_sub() -- 日期减法
$date=date_create("2019-09-29");
date_sub($date,date_interval_create_from_date_string("100 days"));
echo date_format($date,"Y-m-d");
五、其他
1、idate(参数,timestamp)-- 返回各种需要的信息,timestamp默认为当前时间
idate和date很多功能重叠。有待总结。
举例:
idate("t") - 返回本月的总天数
idate("z") - 今天是一年中的第几天