php - 讓日期變的口語化?

查看:95
本文介绍了php - 讓日期變的口語化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

想問一下
我用php time()去製造日期並用 date()顯示

以今天為主:
可能明天的日期會是2017-01-15
就直接顯示2017-01-15

但是否可以改成顯示[明天]?
以及若是2017-01-17
改成顯示[下禮拜二]?

以及若今天是01-17日
而日期若是2017-01-21時
改成顯示[這禮拜六]?

解决方案

public function date_encode($date="2017-01-23")
{
    $sNow = time();
    $sData = strtotime($date);
    $sDate_1 = date('z',$sNow);
    $sDate_2 = date('z',$sData);
    $sWeek_1 = date('W',$sNow);
    $sWeek_2 = date('W',$sData);
    $sWeek = $sWeek_2-$sWeek_1;
    $aWeek = array(
        -1 => '上',
        1 => '下',
    );
    $aDay = array(
        1=>'周一',
        2=>'周二',
        3=>'周三',
        4=>'周四',
        5=>'周五',
        6=>'周六',
        7=>'周日',
    );

    $aTmp = array(
        -6 => '6天前',
        -5 => '5天前',
        -4 => '4天前',
        -3 => '大前天',
        -2 => '前天',
        -1 => '昨天',
        0 =>'今天',
        1 =>'明天',
        2 =>'后天',
        3 =>'大后天',
        4 =>'4天后',
        5 =>'5天后',
        6 =>'6天后',
    );
    $sResult = $sDate_2-$sDate_1;

    if(in_array($sWeek, array_keys($aWeek))){
        return $aWeek[$sWeek].$aDay[date('N',$sData)];
    } elseif(in_array($sResult, array_keys($aTmp))) {
        return $aTmp[$sResult];
    } else {
        return $date;
    }
}

自己写了个,比较蠢,不过效果应该和你说的差不多

这篇关于php - 讓日期變的口語化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆