php 阻止DST(夏令时标准时间)时间并强制获取基于ST格式的日期时间[已关闭]

1wnzp6jl  于 2023-03-21  发布在  PHP
关注(0)|答案(1)|浏览(136)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2天前关闭。
这篇文章是编辑并提交审查7小时前.
Improve this question
我想强制获得标准时间。现在纽约的夏令时是UTC-4。我想阻止它,并强制获得标准时间(UTC-5)。请参阅下面的示例。

<?php
    function TimezoneConvert($datetime,$fromTimeZone,$toTimeZone){
        $timezone = new DateTimeZone( $fromTimeZone );
        $newDateTime = new DateTime($datetime,$timezone);

        $newDateTime->setTimezone(new DateTimeZone($toTimeZone));
        return $newDateTime->format("Y-m-d H:i:s");
    }

    echo "1. ".TimezoneConvert("2023-03-10 23:30:00",'UTC','America/new_york');
    echo "<br> 2. ".TimezoneConvert("2023-03-25 23:30:00",'UTC','America/new_york');
?>

我创建了一个日期和时间转换函数。我有两个UTC日期,第一个是2023-03-10 23:30:00,第二个是2023-03-25 23:30:00。
现在我试着将这个UTC日期转换为America/new_约克时区。显示这两个UTC日期的不同输出,见下文。

Output:
 1. 2023-03-10 18:30:00
 2. 2023-03-25 19:30:00

看到有一个小时不同,我需要得到两个日期与标准时间(UTC-5)和防止DST时间。所以有什么办法来解决我的问题?

jutyujz0

jutyujz01#

您可以使用此代码在laravel中获取预期值。

$datetime = \Carbon\Carbon::now(new \DateTimeZone('-0500'))->format('Y-m-d H:i:s');

在这里,我们使用\DateTimeZone类创建一个新的时区对象,其固定偏移量为-05:00。然后,我们将此时区对象传递给\Carbon\Carbon类的now()方法,以获取具有指定时区的当前日期时间。最后,我们使用format()方法将日期时间格式化为所需格式('Y-m-d H:i:s')

相关问题