人性化时间显示
function formatTime($sTime, $formt = 'Y-m-d') { if (!$sTime) { return ''; } //sTime=源时间,cTime=当前时间,dTime=时间差 $cTime = time(); $dTime = $cTime - $sTime; $dDay = intval(date('z',$cTime)) - intval(date('z',$sTime)); $dYear = intval(date('Y',$cTime)) - intval(date('Y',$sTime)); //n秒前,n分钟前,n小时前,日期 if ($dTime < 60 ) { if ($dTime < 10) { return '刚刚'; } else { return intval(floor($dTime / 10) * 10).'秒前'; } } elseif ($dTime < 3600 ) { return intval($dTime/60).'分钟前'; } elseif( $dTime >= 3600 && $dDay == 0 ){ return intval($dTime/3600).'小时前'; } elseif( $dDay > 0 && $dDay<=7 ){ return intval($dDay).'天前'; } elseif( $dDay > 7 && $dDay <= 30 ){ return intval($dDay/7).'周前'; } elseif( $dDay > 30 ){ return intval($dDay/30).'个月前'; } elseif ($dYear==0) { return date('m月d日', $sTime); } else { return date($formt, $sTime); } }
今日开始和结束的时间戳
$start = mktime(0, 0, 0, date('m'), date('d'), date('Y')); $end = mktime(23, 59, 59, date('m'), date('d'), date('Y'));
昨日开始和结束的时间戳
$start = mktime(0, 0, 0, date('m'), date('d') - 1, date('Y')); $end = mktime(23, 59, 59, date('m'), date('d') - 1, date('Y'));
本周开始和结束的时间戳
$start = strtotime(date('Y-m-d', strtotime("this week Monday", time()))); $end = strtotime(date('Y-m-d', strtotime("this week Sunday", time()))) + 24 * 3600 - 1;
上周开始和结束的时间戳
$start = strtotime(date('Y-m-d', strtotime("last week Monday", time()))); $end = strtotime(date('Y-m-d', strtotime("last week Sunday", time()))) + 24 * 3600 - 1;
本月开始和结束的时间戳
$start = mktime(0, 0, 0, date('m'), 1, date('Y')); $end = mktime(23, 59, 59, date('m'), date('t'), date('Y'));
上个月开始和结束的时间戳
$start = mktime(0, 0, 0, date('m') - 1, 1, date('Y')); $end = mktime(23, 59, 59, date('m') - 1, date('t', $start), date('Y'));
今年开始和结束的时间戳
$start = mktime(0, 0, 0, 1, 1, date('Y')); $end = mktime(23, 59, 59, 12, 31, date('Y'));
去年开始和结束的时间戳
$start = mktime(0, 0, 0, 1, 1, date('Y') - 1); $end = mktime(23, 59, 59, 12, 31, date('Y') - 1);
获取两个时间戳相差几天
function day_to_day($start,$end){ $r = $end-$start; if($r<0){ $day = -($r/86400); $day = ceil($day); }else{ $day = ceil($r/86400); } return $day; }
各种时间戳
//本周一 echo date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600)); //w为星期几的数字形式,这里0为周日 //本周日 echo date('Y-m-d', (time() + (7 - (date('w') == 0 ? 7 : date('w'))) * 24 * 3600)); //同样使用w,以现在与周日相关天数算 //上周一 echo date('Y-m-d', strtotime('-1 monday', time())); //无论今天几号,-1 monday为上一个有效周未 //上周日 echo date('Y-m-d', strtotime('-1 sunday', time())); //上一个有效周日,同样适用于其它星期 //本月一日 echo date('Y-m-d', strtotime(date('Y-m', time()) . '-01 00:00:00')); //直接以strtotime生成 //本月最后一日 echo date('Y-m-d', strtotime(date('Y-m', time()) . '-' . date('t', time()) . ' 00:00:00')); //t为当月天数,28至31天 //上月一日 echo date('Y-m-d', strtotime('-1 month', strtotime(date('Y-m', time()) . '-01 00:00:00'))); //本月一日直接strtotime上减一个月 //上月最后一日 echo date('Y-m-d', strtotime(date('Y-m', time()) . '-01 00:00:00') - 86400); //本月一日减一天即是上月最后一日