【发布时间】:2016-11-30 16:39:45
【问题描述】:
我正在尝试根据区域设置查找第一周和最后一周。
在美国,一周通常从星期日开始,但在其他国家/地区可能会在另一天开始 - 例如周一甚至周六。
setlocale(LC_ALL, "en_US.UTF-8");
date_default_timezone_set("America/New_York");
$start_week = (new DateTimeImmutable());
$start_week = $start_week->modify('this week');
$end_week = $start_week->modify('this week +6 days');
$interval = new DateInterval('P1D');
$week_range = new DatePeriod($start_week, $interval, $end_week);
foreach($week_range as $week_day) {
// $week_day starts with Monday, supposed to be Sunday
}
【问题讨论】:
-
日历上的“一周开始”通常是用户在文化默认设置之上的偏好。即使您居住在美国,您也可能希望您的日历显示从星期一开始几周。
-
@Leith:我的 Windows、Outlook、iPhone 日历都从星期日开始。那些日历的开发者没有这样的借口。
-
但您的 Google 日历会让您选择。我并不是说基于语言环境设置默认值不是一个好主意 - 我只是说你不一定想一成不变。
标签: php datetime localization