alexeymezenin/laravel-gmt-timezones

帮助管理Laravel中的时区。包含用于时区的<select>表单构建器。从camroncade/timezone分支,使用GMT代替UTC。

该包的官方仓库似乎已消失,因此该包已被冻结。

1.0.1 2016-06-22 05:57 UTC

This package is not auto-updated.

Last update: 2020-02-27 21:45:51 UTC


README

这是从camroncade/timezone分支出来的,但使用GMT时区而不是UTC。比较两个包中的src/Timezone.php以了解差异。

这是一个创建包括可读时区的选择菜单的辅助函数。每个基础键是时区的PHP友好名称,这使得它们可以立即存储和使用。时区及其基础键的数组是从tamaspap的仓库中取出的。

安装

建议通过composer安装此包。在你的项目的composer.json文件中包含以下内容

"require": {
	"alexeymezenin/laravel-gmt-timezones": "*"
}

然后,在终端中更新Composer

composer update

此操作完成后,下一步是添加服务提供者。打开config/app.php,并将新项添加到服务提供者数组中。

'AlexeyMezenin\LaravelGmtTimezones\TimezoneServiceProvider'

现在它已准备好使用!

使用

时区转换辅助函数

该包包括两个辅助函数,使处理显示和存储时区变得容易,convertFromGMT()convertToGMT()

每个函数接受两个必需参数和一个可选的第三个参数,用于处理返回的时间戳的格式。

convertFromGMT($timestamp, $timezone, $format);
convertToGMT($timestamp, $timezone, $format);

第一个参数接受一个时间戳,第二个参数接受转换到的/从的时间区的名称。可以直接使用包含在选择表单构建器中的时区的相关联选项值。或者,您可以使用PHP支持的时区中的任何一个。

第三个参数是可选的,默认设置为'Y-m-d H:i:s',这是Laravel将日期时间原封不动存储到数据库中的方式(created_atupdated_at列)。

选择表单构建器

该包还包括一个用于创建选择选项的辅助函数。这是通过调用Timezone::selectForm()创建的。

selectForm方法接受四个可选参数:string selectedplaceholderarray formAttributesarray optionAttributes。以下是一个使用示例

$selected = 'America/Los_Angeles';
$placeholder = 'Select a timezone';
$formAttributes = ['class' => 'form-control', 'style' => 'float:left;', 'name' => 'timezone'];
$optionAttributes = ['customValue' => 'true'];

Timezone::selectForm($selected, $placeholder, $formAttributes, $optionAttributes);

请注意,$selected参数与每个选项的值匹配,而不是显示文本。可以用于样式、角色以及您需要的任何东西的$formAttributes$optionAttributes参数。这对于应用Twitter Bootstrap样式非常有用。