如何在 Laravel Blade 中将 UTC 转换为用户浏览器时间

问题描述 投票:0回答:2

代码未按预期工作,请帮忙。我想将从数据库中获取的时间显示为浏览器时间(UTC)。

`最新数据:

最新数据时间戳”; $time = strtotime($utc); 回声“”。 date("Y-m-d H:i:s", $time)."
"; ?> `
php laravel
2个回答
0
投票

为此,您必须将用户的时区存储在数据库中。如果您不存储时区,则必须使用 Javascript 执行。

<script>
// Get UTC time from Blade template
var utcTime = "{{ $utcTime->toIso8601String() }}";

// Convert UTC time to local time
var userLocalTime = new Date(utcTime);
var userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
var userTimezoneOffset = new Date().getTimezoneOffset();
userLocalTime.setMinutes(userLocalTime.getMinutes() - userTimezoneOffset);

// Display user's local time
document.write("<div>User's Local Time: " + userLocalTime.toLocaleString() + "</div>");

0
投票

要将 UTC 时间转换为 Laravel Blade 中用户的浏览器时间,您可以使用 JavaScript 在客户端处理转换。以下是如何实现此目标的简单示例:

<!DOCTYPE html>
<html>
<head>
    <title>UTC to User Time</title>
</head>
<body>
    <p>UTC Time: {{ $utc_time }}</p>
    
    <script>
        var utcTime = new Date('{{ $utc_time }}');
        var userTime = new Date(utcTime.getTime() + (utcTime.getTimezoneOffset() * 60000));
        
        document.write('User Time: ' + userTime);
    </script>
</body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.