PHP DateTimeImmutable设置时区后返回错误时间戳问题
问题解决:PHP DateTimeImmutable时间戳时区偏差1小时
问题根源
你使用的EDT是夏令时缩写,并非PHP官方推荐的标准时区标识符。PHP的DateTimeZone更适配地区式时区(如America/New_York),直接用夏令时缩写会导致时区解析异常,进而生成错误的时间戳。
修正后的代码
date_default_timezone_set("America/New_York"); $myDate = new DateTimeImmutable("08/30/2024 4:00 PM", new DateTimeZone("America/New_York")); echo $myDate->getTimestamp();
关键说明
- 改用
America/New_York这类标准时区后,PHP会自动处理夏令时(EDT)与标准时间(EST)的切换,无需手动指定夏令时缩写。 - 修正后运行代码将得到预期时间戳
1725048000,对应EDT下午4点。
内容的提问来源于stack exchange,提问作者Michael Saunders
相关产品推荐
相关产品推荐

