PHP中常见日期、月份、时间戳列表(strtotime、date、mktime的用法)

在实际开发过程中,特别是做查询统计时,经常会用到最近七天、上周、上个月、每月第一天等时间操作,以下是一些常见用例:

日期

  • 今天 date('Y-m-d')

  • 明天 date('Y-m-d',strtotime('1 day'))

  • 明天 date('Y-m-d',strtotime('tomorrow'))

  • 明天 date("Y-m-d",mktime(0,0,0,date('m'),date('d')+1,date('Y')))

  • 昨天 date('Y-m-d',strtotime('-1 day'))

  • 昨天 date('Y-m-d',strtotime('yesterday'))

  • 昨天 date("Y-m-d",mktime(0,0,0,date('m'),date('d')-1,date('Y')))

  • 前天 date('Y-m-d',strtotime('-2 day'));

  • 前i天 date('Y-m-d',strtotime('-'.$i.' day'));

  • 前i天 date("Y-m-d",mktime(0,0,0,date('m'),date('d')-i,date('Y')))

  • 后i天 date('Y-m-d H:i:s',strtotime($i.' day'))

  • 后i天 date("Y-m-d",mktime(0,0,0,date('m'),date('d')+i,date('Y')))

月份

  • 本月份 date('Y-m')

  • //以下’month’可用复数’months’

  • 下个月 date("Y-m",strtotime('next month'))

  • 下个月 date("Y-m",strtotime('1 month'))

  • 上个月 date("Y-m",strtotime('last month'))

  • 上个月 date("Y-m",strtotime('-1 month'))

  • 前$i月 date(‘Y-m’,strtotime('-'.$i.' month'))

  • 前$i月 date("Y-m-d",mktime(0,0,0,date('m')-$i,date('d'),date('Y')))

  • 后$i月 date("Y-m",strtotime($i.' month'))

  • 后$i月 date("Y-m-d",mktime(0,0,0,date('m')+$i,date('d'),date('Y')))

星期

  • 本星期(星期一) date('Y-m-d',strtotime('this week'))
  • 上星期(星期一) date('Y-m-d',strtotime('last week'))
  • 下星期(星期一) date('Y-m-d',strtotime('next week'))
  • 下星期(7天后) date('Y-m-d',strtotime('1 week'))
  • 上星期(7天前) date('Y-m-d',strtotime('-1 week'))
  • 上星期(7天前) date('Y-m-d',strtotime($i.' week'))
  • $i个星期 date('Y-m-d',strtotime($i.' week'))
  • $i个星期后的星期一 date('Y-m-d',strtotime($i.' week monday'))

时间戳

  • 一天(24小时)总秒数 86400

  • 一周(7天)总秒数 604800

  • 今天0点 strtotime(date('Y-m-d'))

  • 今天23:59:59 strtotime(date('Y-m-d'))+86399

  • 昨天0点 strtotime(date('Y-m-d',strtotime('-1 day')))

  • 昨天23:59:59 strtotime(date('Y-m-d',strtotime('-1 day')))+86399

  • 昨天23:59:59 strtotime(date('Y-m-d'))-1

  • 明天0点 strtotime(date('Y-m-d',strtotime('1 day')))

  • 明天23:59:59 strtotime(date('Y-m-d',strtotime('1 day')))+86399

  • 明天23:59:59 strtotime(date('Y-m-d',strtotime('2 day')))-1

  • 昨天的这个时刻 strtotime('-1 day') //数字与day之前可以不用空格

  • 明天的这个时刻 strtotime('1 day')

  • $i天后的这个时刻 strtotime($i.' day')

  • $i天后的这个时刻 strtotime(-$i.' day')

  • $i天后的0点 strtotime(date('Y-m-d',strtotime($i.' day')))

  • $i天前的0点 strtotime(date('Y-m-d',strtotime(-$i.' day')))

  • 本星期开始(周一0点) strtotime('this week monday')

  • 本星期结束(周日23:59:59) strtotime('this week sunday')+86399

  • 本星期结束(周日23:59:59) strtotime('this week monday')+604800-1

  • 前$i星期开始(周一0点) strtotime('this week monday')-604800 * $i

  • 前$i星期结束(周日23:59:59点) strtotime('this week monday')-604800 * ($i-1)-1

  • 上一个周一0点 strtotime("-1 week Monday") //今天是周一,则为上周一0点 今天是周二(周一之后),则为本周三0点

  • 上一个周三0点 strtotime("-1 week wednesday") //今天是周三,则为上周三0点 今天是周四(周三之后),则为本周三0点

  • 下一个周一0点 strtotime("1 week Monday") //今天是周一,则为下周一0点 今天是周二(周一之后),则为下下周一0点

  • 下一个周三0点 strtotime("1 week wednesday") //今天是周三,则为下周三0点 今天是周四(周三之后),则为下下周三0点

  • 本月首日0点 strtotime(date('Y-m'))

  • 本月尾日23:59:59 strtotime(date('Y-m',strtotime('next month')))-1

  • 本月尾日23:59:59 mktime(0,0,0,date('m')+1,1,date('Y'))-1

  • 前$i月首日0点 mktime(0,0,0,date('m')-$i,1,date('Y'))

  • 前$i月尾日23:59:59 mktime(0,0,0,date('m')-$i+1,1,date('Y'))-1

  • 后$i月首日0点 mktime(0,0,0,date('m')+$i,1,date('Y'))

  • 后$i月首日23:59:59 mktime(0,0,0,date('m')+$i+1,1,date('Y'))-1

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值