alexeymezenin / laravel-gmt-timezones
帮助管理Laravel中的时区。包含用于时区的<select>表单构建器。从camroncade/timezone分支,使用GMT代替UTC。
该包的官方仓库似乎已消失,因此该包已被冻结。
Requires
- php: >=5.4.0
- illuminate/support: >=4.2
Requires (Dev)
- phpunit/phpunit: ^5.3
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_at
和updated_at
列)。
选择表单构建器
该包还包括一个用于创建选择选项的辅助函数。这是通过调用Timezone::selectForm()
创建的。
selectForm方法接受四个可选参数:string selected
、placeholder
、array formAttributes
和array 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样式非常有用。