laraning/nova-time-field

Laravel Nova 字段。

v1.2 2020-11-29 17:27 UTC

This package is auto-updated.

Last update: 2024-09-06 04:01:48 UTC


README

Latest Version on Packagist StyleCI Total Downloads

此包包含一个 Nova 字段,允许您存储时间值。底层使用 flatpickr 默认 Laravel Nova 日历库。

screenshot of the nova time field

安装

您可以通过 composer 在您的 Laravel Nova 应用中安装此包

composer require laraning/nova-time-field

用法

您可以在您的 Nova 资源中使用 Laraning\NovaTimeField\TimeField 命名空间

namespace App\Nova;

use Laraning\NovaTimeField\TimeField;

class BlogPost extends Resource
{
    // ...

    public function fields(Request $request)
    {
        return [
            // ...

            TimeField::make('Post start Time'),
            // ...
        ];
    }
}

默认情况下,时间组件使用 24 小时制。但您也可以将其设置为 12 小时制,如下所示

TimeField::make('Post start Time')->withTwelveHourTime(),

您还可以将默认的 5 分钟递增值更改为另一个数字

TimeField::make('Post start Time')->minuteIncrement(1),

您可以通过在字段上调用 withTimezoneAdjustments() 方法,确保所有输入的时间都被转换回您的基础应用程序时区(在 config/app.php 中设置)。

TimeField::make('Post start Time')->withTimezoneAdjustments(),

例如,当您的应用程序设置为 GMT,但用户位于 BST (GMT+1) 时,用户仍然可以以本地时间与时间字段交互,但时间将以 GMT 保存到数据库。

例如,用户可能选择 14:00。他们总是会看到时间为 14:00,但数据库会将其保存为 13:00,因为它在幕后进行 BST -> GMT 调整。

除了处理时间到和从您的应用程序基本时区的切换外,您还可以传递时区偏移量(以分钟为单位),例如由 moment().utcOffset() 返回的偏移量。这将调整显示的时间以使用调整后的时区而不是用户的时区。如果要在 UTC 中保存时间以及提交它的浏览器偏移量,这非常有用。

在这里,您可以看到如何通过传递偏移量 60 将 UTC 移动到 BST

TimeField::make('Post start Time')->withTimezoneAdjustments(60),

当前开发状态

  • 发布 0.1.0 版本。
  • 添加最小测试场景。
  • 添加时区支持。

变更日志

有关最近更改的更多信息,请参阅 变更日志

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件