栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PHP几种常用的日期时间处理

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP几种常用的日期时间处理

人性化时间显示

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); //本月一日减一天即是上月最后一日



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778894.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号