我正在尝试找到一种解决方法,以解决如何将存储在数据库中的日期时间转换为“yyyy-mm-dd HH-mm-ss”并为其指定时区“America/Los_Angeles”。
如果我更改时区,Carbon 会自动从时间中减去 7 小时,这就是将时间从 UTC 更改为 PST 时发生的情况,但我的数据库中的时间设置为 PST 时间。例如,我希望时间是今天上午 10 点,但如果我更改时区,Carbon 会将其转换为今天凌晨 3 点。
如何将时区更改为 PST 但仍将时间保持在上午 10 点?我需要 API 调用的时区,这就是为什么我需要弄清楚这一点。
原文由 Eric Brown 发布,翻译遵循 CC BY-SA 4.0 许可协议
好的,我想出了一种愚蠢但实用的方法来做我想做的事情,并且它有效。
这是我的代码:
我得到了我想转换为时区并解析它并更改时区的时间。然后我得到日、月和年,并创建 2 个不同的日期,两者都会及时读取为 00:00:00,但因为在这种情况下它们相隔 7 小时,所以它们只能是 00:00:如果它们相差 7 小时,则为 00,这就是我接下来要捕捉的内容。最后,我采用初始日期时间并将差异添加到其中,从而在适当的时区为我提供适当的时间。
这很丑陋,但它有效。