美文网首页
php常用日期操作函数以及周操作和月操作的坑

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

作者: 吕艳凯 | 来源:发表于2020-04-04 19:39 被阅读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"))    //下个月最后一天
    

    相关文章

      网友评论

          本文标题:php常用日期操作函数以及周操作和月操作的坑

          本文链接:https://www.haomeiwen.com/subject/iocsphtx.html