[英]First day of week PHP IntlDateFormatter
我正在尝试使用IntlDateFormatter类(在后台使用ICU)获得“正确的”星期几。
该代码说明了问题
<?php
$timezone = new \DateTimeZone('Europe/Amsterdam');
$date = new \DateTime('2018-01-15', $timezone);
$formatter = new \IntlDateFormatter('nl_NL', null, null);
// This prints "Monday" which is corrent
echo $formatter->formatObject($date, 'EEEE');
// This prints "2", which is incorrect
echo $formatter->formatObject($date, 'e');
根据ICU文档,应打印“ 1”。 该示例显示“ 2”代表“星期二”
当询问IntlDateCalendar时,我的系统将第2天(星期一)显示为一周的第一天。 因此,IntlDateFormatter应该在今天(星期一)作为一周的第一天。
使用“ EEEE”或“ eeee”作为输入没有区别。 其他时区/地区不会改变结果。
以下代码对我有用,尽管我从星期日开始一周,但是您可以尝试一下:
$day = date('w'); $week_start = date('d F Y', strtotime('-'.$day.' days'));
然后,将其放在这样的标题中: <h4>Schedule for the week beginning SUN <?=$week_start?></h4>
。
结果: 单击链接以查看结果图片。
另外,请查看PHP文档: http : //php.net/manual/en/function.strtotime.php,http: //php.net/manual/en/function.date.php或以下网址 : https:// www .w3schools.com / php / func_date_date.asp
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.