脚本宝典收集整理的这篇文章主要介绍了PHP我的时区一周的第一天不正确,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Laravel,但我很确定它本身与它无关,我的Carbon日期总是在“星期一”作为一周的第一天返回.问题是,我在一个应该返回“星期天”的地方.
/* |-------------------------------------------------------------------------- | Application Timezone |-------------------------------------------------------------------------- | | Here you may sPEcify the default timezone for your application,which | will be used by the PHP date and date-time functions. We have gone | ahead and set this to a sensible default for you out of the Box. | */ 'timezone' => 'america/Montreal',
创建碳日期并打印出来:
<?PHP $date = Carbon::Now(); var_dump($date);
object(Carbon\Carbon)[278] public 'date' => string '2016-06-22 06:05:18.000000' (length=26) public 'timezone_type' => int 3 public 'timezone' => string 'America/Montreal' (length=16)
如果我打印一周的第一天
<?PHP VAR_dump($date->getWeekStartsAt());
我明白了
1
奇怪的是,如果我去家园控制台并键入“locale”,我会得到:
LANG=en_US.UTF-8 LANGUAGE=en_US: LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8
所以我的默认语言环境应该是USA吗?根据GOOGLE的说法,本周美国,加拿大和日本的第一天是星期天…运行“locale First_weekday”收益率:1(星期一)
所以我不确定我应该或可以做些什么来解决这个问题,因为这是完全错误的.我有一个基于机器区域设置绘制的日历,这显然是错误的,因此它向我的客户显示一个不适合他们的区域设置的日历.
谢谢你分享你的想法!
编辑#1
PRotected static $weekStartsAt = self::MONDAY;
设置为self :: MONDAY,解析为1.这就是你获得1的原因.
您可以调用setWeekStartsAt($day)来设置一周中正确的开始日期.当然,你需要调用setWeekEndsAt($day).
$date->setWeekStartsAt(0); $date->setWeekEndsAt(6); // Or better $date->setWeekStartsAt(Carbon::SUNDAY); $date->setWeekEndsAt(Carbon::SATURDAY);
以上是脚本宝典为你收集整理的PHP我的时区一周的第一天不正确全部内容,希望文章能够帮你解决PHP我的时区一周的第一天不正确所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。