84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
想問一下我用php time()去製造日期並用 date()顯示
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; } }
自己写了个,比较蠢,不过效果应该和你说的差不多
Carbon
不记得有原生函数实现,建议自己写个函数吧。请参考:date("Y-m-d",strtotime("+N day"));//获取N天后的时间,然后你判断去吧date("Ymd", strtotime("2007-11-01")+10243600);//同上
我大概这样一想,等大神支招
比方说$week=date("w")可以判断今天周几,然后你要判断周二,就有好几种情况 1.刚好是周二,$week=2; 2.大于周二,也就是周三、周四、周五、周六,$week=3,4,5,6 3.小于周二,也就是周日、周一,$week=0,1 字符串型直接strtotime,就是数字型了,可以直接加减,大于的时候减去3600*24*多少天,小于的话直接加上 按照你的需求,如果说明天后天,用今天为基点,如果下礼拜的话,先把下礼拜一算出来,用礼拜一作为基点,其他的一直加下去就是了
自己写了个,比较蠢,不过效果应该和你说的差不多
Carbon
不记得有原生函数实现,建议自己写个函数吧。
请参考:
date("Y-m-d",strtotime("+N day"));//获取N天后的时间,然后你判断去吧
date("Ymd", strtotime("2007-11-01")+10243600);//同上
我大概这样一想,等大神支招