php - 讓日期變的口語化?
本文介绍了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屋!
查看全文