0
我需要一个用户能够选择一个时区,可以说,一些“广播”。 我只需要保存所选时区BUT的timezone_offset值(以秒为单位)。像:偏移设置中的时区下拉值
+03:00应该是保存到数据库中像10800,或者如果 -03:00这应该被保存像-10800
所以+ offtests应该在几秒钟内没有被保存为只是数量加号 和 - 偏差应保存与减号-10800
我发现这个功能:
<?php
/**
* Timezones list with GMT offset
*
* @return array
* @link http://stackoverflow.com/a/9328760
*/
function tz_list() {
$zones_array = array();
$timestamp = time();
foreach(timezone_identifiers_list() as $key => $zone) {
date_default_timezone_set($zone);
$zones_array[$key]['zone'] = $zone;
$zones_array[$key]['diff_from_GMT'] = 'UTC/GMT ' . date('P', $timestamp);
}
return $zones_array;
}
?>
所以这个:
<div style="margin-top: 20px;">
<select style="font-family: 'Courier New', Courier, monospace; width: 450px;">
<option value="0">Please, select timezone</option>
<?php foreach(tz_list() as $t) { ?>
<option value="<?php print $t['zone'] ?>">
<?php print $t['diff_from_GMT'] . ' - ' . $t['zone'] ?>
</option>
<?php } ?>
</select>
</div>
给了我这样的:
<option value="Africa/Abidjan">
UTC/GMT +00:00 - Africa/Abidjan </option>
<option value="Africa/Accra">
UTC/GMT +00:00 - Africa/Accra </option>
<option value="Africa/Addis_Ababa">
UTC/GMT +03:00 - Africa/Addis_Ababa </option>
<option value="Africa/Algiers">
UTC/GMT +01:00 - Africa/Algiers </option>
但我需要的值是根据所选择的timzone 10800或-10800。
我的环境是laravel 5.1 *所以我也有碳可能可能会有所帮助。
所以基本的问题是,如何转换时区偏移格式“+03:00”到“10800”和“-03:00”到“-10800”