簡體   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