cyberpunkcodes/laravel-moment-timezone

Laravel包,使用Moment显示用户时区的日期和时间

v1.0.2 2024-06-08 06:54 UTC

This package is auto-updated.

Last update: 2024-09-08 07:27:27 UTC


README

Laravel包,使用Moment和Moment Timezone将日期/时间转换为用户的本地时间。

特别感谢Blade UI Kit为本包提供基础。如果您需要输入、按钮、警告等UI组件,请务必查看。

安装

使用Composer安装

composer require cyberpunkcodes/laravel-moment-timezone

将指令添加到布局中,在所有其他脚本加载完成后,在</body>标签之前,以加载所需的JavaScript文件

@momentScripts

建议发布配置文件,这样更新此包时不会自动升级Moment和Moment Timezone JavaScript文件,以免在生产环境中给您带来惊喜。通过发布配置文件,资产版本不会更新,直到您手动在配置中更新它们。

运行以下命令发布配置文件:

php artisan vendor:publish --tag=moment-config

config/moment.php中,您将看到一个包含子scripts数组的assets数组。此数组中的每个脚本都将由@momentScripts指令直接打印。

包含完整的<script></script>标签。这样您就可以从CDNJS等来源复制它,并保持完整性哈希检查。

可选地,您可以将脚本添加到您的资产打包/压缩处理器中。在这种情况下,您将不会使用@momentScripts指令。

如果您想自定义组件的视图文件,请运行

php artisan vendor:publish --tag=moment-views

用法

将视图文件中的所有日期/时间替换为moment组件

<x-moment :date="$user->created_at" format="F jS, Y \a\t g:i a" />

这将显示为:2023年1月23日,中午12:07

默认用法使用PHP的日期时间格式化。有关更多详细信息,请参阅此处PHP文档:https://php.ac.cn/manual/en/datetime.format.php

可读性

要显示为可读性,打印"2分钟前"或"2个月前",您可以简单地添加human属性,如下所示

<x-moment :date="$user->created_at" format="F jS, Y \a\t g:i a" human />

本地时区

最后,如果您想显示用户的本地时区的日期/时间,只需添加local属性,如下所示

<x-moment :date="$user->created_at" format="MMMM Do, Y [at] h:mm a" local />

需要注意的是,使用local属性时,格式必须使用Moment的格式化规则,而不是PHP。有关更多信息,请参阅Moment格式化规则:https://moment.js.cn/docs/#/displaying/format/

以下是两者的并列比较。它们都显示完全相同的内容。

PHP格式:F jS, Y \a\t g:i a

Moment格式:MMMM Do, Y [at] h:mm a

两者都将显示为:January 23rd, 2023 at 12:07 pm

前缀

如果您还有一个名为moment的组件,并且遇到了冲突,您可以定义一个自定义前缀。

如果您将前缀设置为cool,则可以使用组件如下

<x-cool-moment :date="$user->created_at" format="F jS, Y \a\t g:i a" />

在重命名组件后,您可能会看到有关组件找不到的错误。这是由于视图缓存引起的。您必须清除视图缓存

php artisan view:clear

贡献

我打算保持此包简单。用例仅适用于Moment和Moment Timezone。如果您发现错误/错误,或想帮助清理此README,请首先创建一个问题,以便我们可以在您浪费时间在拉取请求之前进行讨论。