繁体   English   中英

每周第一天PHP IntlDateFormatter

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM