gpt4 book ai didi

laravel - 在 Livewire 中显示或编辑日期时使用客户端时区

转载 作者:行者123 更新时间:2023-12-05 06:57:26 24 4
gpt4 key购买 nike

我将 Livewire 2AlpineLaravel 8 一起使用。

我有一个 HTML 表格,显示模型列表的一些信息,在这些信息中有日期。
日期存储在我的数据库中没有时区的时间戳中(如 UTC),我的 Laravel 默认配置为使用 UTC。

我需要在客户端本地时区中显示这些日期,但 HTML 表格无需登录即可显示给用户,因此我无法将他们的时区 存储在users 表例如..

我的表是这样的:

<table>
<thead>
<tr>
<th>actions</th>
<th>id</th>
<th>name</th>
<th>start date</th>
</tr>
</thead>
<tbody>
@foreach ($mymodels as $m)
<tr>
<td><button wire:click="startEdit({{ $m->id }})">EDIT</button></td>
<td>{{ $m->id }}</td>
<td>{{ $m->name }}</td>
<td>{{ $m->starts_at }}</td> {-- I need to display this in local timezone --}
</tr>
@endforeach
</tbody>
</table>

我不知道这样做的好方法是什么。
在显示之前告诉 Livewire 时区偏移量是多少?但是如何呢?
我正在考虑在我的组件内的随机 div 上在 Alpine 中做这样的事情:

x-data x-init="$wire.set('timezone', -(new Date).getTimezoneOffset())"

但我觉得不太好..

这也只是问题的第一部分,因为正如您在我的表格中看到的那样,有一个编辑 按钮,它会打开一个带有编辑表单的模式。在这种形式中,我希望用户在其本地时区中输入日期,因此我需要在使用 wire:model 分配它之前将其转换为其时区,并且我需要将其转换回 UTC在将其保存到数据库之前。

我没有在互联网上找到任何关于如何处理这种事情的好的做法,任何想法将不胜感激。

最佳答案

我在这里发现了一些不错的想法,看看它是否对您有帮助: https://www.qcode.in/managing-users-timezone-in-laravel-app/

您也可以从 javascript 或 php 检测客人时区。

关于laravel - 在 Livewire 中显示或编辑日期时使用客户端时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64889937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com