php常用日期操作函数以及周操作和月操作的坑

2020-04-04  本文已影响0人  吕艳凯

php开发中经常用到的日期操作函数:

天、时、分、秒操作

strtotime 第一个参数为日期格式化字符串,默认第二个参数当前时间的时间戳

strtotime("2019-01-08")       //日期字符串转为时间戳
time()              //获取当前时间的时间戳
microtime()    //获取当前时间的微秒时间戳
date('Y-m-d H:i:s', time())   //格式化当前时间
date('Y-m-d', strtotime('next day'))   //下一天
date('Y-m-d', strtotime('+1 day')) //下一天
date('Y-m-d', strtotime('last day'))    //上一天
date('Y-m-d', strtotime('-1 day'))    //上一天
date('Y-m-d H:i:s', strtotime("+7 day 2 hour 1 minute 5 second"))    //加7天2小时1分钟5秒
date('Y-m-d H:i:s',strtotime("+1 day",strtotime("2017-04-04")))  //以某一个特定时间为基准
周操作
date('Y-m-d H:i:s', strtotime("next week"))   //下周一同一时间
date('Y-m-d H:i:s', strtotime("last week"))   //上周周一同一时间

周操作的坑

date('Y-m-d H:i:s', strtotime("+1 week"))     //加7天后的同一时间,相当于+7 day
date('Y-m-d H:i:s', strtotime("-1 week"))     //减7天后的同一时间
月操作
date('Y-m-d H:i:s', strtotime("+1 month"))     //上一个月
date('Y-m-d H:i:s', strtotime("-1 month"))     //下一个月

**月操作的坑
在这里的加一个月或减一个月是指在当前时间的月份 +1 或者 -1
例如:
当前时间07-31, 减去一以后就是06-31,而6月是没有31号的
因此会自动的日期格式化,所以就好像2点60等于3点一样, 6月31就等于了7月1
这就引发了一个坑,搞的一头雾水

**解决办法:
从PHP5.3开始呢, date新增了一系列修正短语, 来明确这个问题, 那就是”first day of” 和 “last day of”

date('Y-m-d H:i:s', strtotime("first day of +1 month"))    //上个月第一天
date('Y-m-d H:i:s', strtotime("last day of +1 month"))    //下个月最后一天
上一篇 下一篇

猜你喜欢

热点阅读