PHP strtotime函数与时区问题?-灵析社区

PunkMaccccc

我在使用PHP strtotime函数是,遇到了+9时区的问题。 $first_day = strtotime($year.'-'.$i.'-01 00:00:00'); return json($first_day); 得到的结果是 2024-01-01 09:00:00 请问到底该怎么解决才能使 strtotime 直接得到0点的时间戳? 我检查了系统的时区,timedatectl 返回的结果 Local time: Wed 2024-01-03 22:15:09 CST Universal time: Wed 2024-01-03 14:15:09 UTC RTC time: Wed 2024-01-03 14:15:09 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: yes NTP service: active RTC in local TZ: no PHP date_default_timezone_get() 返回的是PRC。 即便使用 DateTime 得到的依然是2024-01-01 09:00:00。 new DateTime($year.'-'.$i.'-01', new DateTimeZone('Asia/Shanghai'));

阅读量:26

点赞量:0

问AI
云卿山手
"strtotime" 函数使用默认时区,如果你的"date_default_timezone_get"获取到是"PRC",正常是没问题的。 可以试下这代码: ini_set('date.timezone', 'PRC'); echo date_default_timezone_get(), PHP_EOL; echo strtotime('today'), PHP_EOL; echo date('Y-m-d H:i:s', strtotime('today')); 效果见:"https://3v4l.org/ICbJv" (https://link.segmentfault.com/?enc=Lf1QU%2BMmsoJAu2GaL1auGQ%3D%3D.T%2BI%2BhX8NBL69kCZzZ9SKW%2F2oLHUGzTHOEPvD4Z9KirY%3D)