获取今日日期
$today = date('Y-m-d').' 00:00:00';
获取本周开始及结束日期(周一至周日 )
mk函数:
$timestamp = mktime(0, 0, 0, date('m'), date('d') - date('w') + 1, date('Y'));
$monday = date('Y-m-d', $timestamp);// 本周周一
$timestamp = mktime(23, 59, 59, date('m'), date('d') - date('w') + 7, date('Y'));
$sunday = date('Y-m-d', $timestamp);// 本周周日
strtotime函数:
$defaultDate = date("Y-m-d");// 当前时间 $w=date('w',strtotime($defaultDate));// 现在是周几 $monday=date('Y-m-d',strtotime("$defaultDate -".($w ? $w - 1 : 6).' days'));// 本周周一 $sunday=date('Y-m-d',strtotime("$monday +6 days"));// 本周周日
获取上周开始及结束日期(周一至周日 )
mk函数:
$timestamp = mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$monday = date('Y-m-d', $timestamp);// 上周周一
$timestamp = mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
$sunday = date('Y-m-d', $timestamp);// 上周周日
strtotime函数:
$monday = date('Y-m-d', strtotime("last week Monday", time()));
$sunday = date('Y-m-d H:i:s', (strtotime(date('Y-m-d', strtotime("last week Sunday", time()))) + 24 * 3600 - 1));
循环本周天数
$time = time(); //获取当前周几 $week =date('w',$time); $dateArray = []; for ($i=1;$i<=7;$i++){ $a = date('Y-m-d' ,strtotime('+' .$i-$week .' days',$time)); $dateArray[$i] = $a; }
获取本月开始及结束日期
mk函数:
$timestamp = mktime(0, 0, 0, date('m'), 1, date('Y'));
$firstday= date('Y-m-d', $timestamp);
$timestamp = mktime(23, 59, 59, date('m'), date('t'), date('Y'));
$lastday = date('Y-m-d', $timestamp);
strtotime函数:
$firstday= date('Y-m-01', time());
$lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));
获取上月开始及结束日期
mk函数:
$timestamp_first = mktime(0, 0, 0, date('m') - 1, 1, date('Y'));
$firstday= date('Y-m-d', $timestamp_first);
$timestamp = mktime(23,59,59,date('m')-1,date('t',$timestamp_first),date('Y'));
$lastday = date('Y-m-d', $timestamp);
strtotime函数:
$firstday= date('Y-m-01', strtotime('-1 month'));
$lastday = date('Y-m-t', strtotime('-1 month'));
获取本季度开始及结束时间
$season = ceil(date('n') /3); //获取月份的季度
mk函数: $timestamp = mktime(0,0,0,($season - 1) *3 +1,1,date('Y')); $startdate = date('Y-m-01',$timestamp); $timestamp = mktime(0,0,0,$season * 3,1,date('Y')); $enddate = date('Y-m-t',$timestamp);
strtotime函数:
$timesdate = date('y-m-01',strtotime(date('Y').'-'.($season - 1) *3 +1));
$enddate = date('y-m-t',strtotime(date('Y').'-'.($season *3)));
获取上季度开始及结束时间
$season = ceil(date('n') /3); //获取月份的季度
mk函数: $timestamp = mktime(0,0,0,($season - 2) * 3 +1,1,date('Y')); $startdate = date('Y-m-01',$timestamp); $timestamp = mktime(0,0,0,($season - 1) * 3,1,date('Y')); $enddate = date('Y-m-t',$timestamp);
strtotime函数:
$startdate = date('Y-m-01',strtotime(date('Y').'-'.(($season-1)*3-2)));
$enddate = date('Y-m-t',strtotime(date('Y').'-'.($season-1)*3));
注:
strtotime()
将英文文本日期时间解析为 Unix 时间戳
示例
echo(strtotime("now") . "<br>");// 当前时间
echo(strtotime("15 October 1980") . "<br>");/ 具体时间
echo(strtotime("+5 hours") . "<br>");//5小时
echo(strtotime("+1 week") . "<br>");//一周
echo(strtotime("+1 week 3 days 7 hours 5 seconds") . "<br>");//一周三天
echo(strtotime("next Monday") . "<br>");//下周一
echo(strtotime("last Sunday"));//上周日
strtotime(‘-1 year’);//上一年
mktime(hour,minute,second,month,day,year)
返回一个日期的 UNIX 时间戳。然后使用它来查找该日期的天: