PHP星期几数字到星期几文本

这可能很容易,但我找不到一个PHP函数来做到这一点…

好吧

$dow_numeric = date('w'); 

星期日至星期六给出星期0-6的数字date。

 $dow_text = date('D'); 

给出星期几(Sun,Mon等)的3个字母的缩写

有一个函数或简单的方法来使用$dow_numeric获得$dow_text ? 如果我有'0'作为$dow_numeric ,我如何使$dow_text = 'Sun' ? 是的switch语句可以完成这项工作,但我正在寻找一个更优雅的解决scheme。

创build一个数组以将数字DOW映射到文本DOW。

 $dowMap = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); 

如果你需要区域设置的支持,加载一些随机的date(例如epoch(0)将是一个很好的date),然后在接下来的6天,dynamic地build立dow地图。

黑客的位,但:

 $dow_text = date('D', strtotime("Sunday +{$dow_numeric} days")); 

这不是stream行的,但实际上PHP中有一个函数jddayofweek 。 您可以使用第二个参数调用它为1来获取完整的公历周名称,或者缩写名称为2。

 eg jddayofweek(2, 2); #returns Wed 

请注意,对于此function,数字从星期一开始。 所以星期一= 0,星期二= 1,…

这应该工作:

 $dow_numeric = 3; $last_sunday = strtotime('last Sunday'); $dow_text = date('D', strtotime('+'.$dow_numeric.' day', $last_sunday)); 
 function getDay(){ $dowMap = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); $dow_numeric = date('w'); return $dowMap[$dow_numeric]; }