我很想知道PHP中时区设置的最大长度是多少?我将字符串存储在数据库中,并希望保持尽可能短的长度,但我看到时间区如“加拿大/东萨斯喀彻温省”,超出了我们目前的限制。
如果我可以获得所有支持的时区字符串的列表,我可以对它们进行排序,但它们目前分为几个不同的页面。
答案 0 :(得分:11)
答案是32.这里是完整的PHP代码,可以找到:
<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
$maxlen = 0;
foreach($timezone_identifiers as $id)
{
if(strlen($id) > $maxlen)
$maxlen = strlen($id);
}
echo "Max Length: $maxlen";
/*
Output:
Max Length: 32
*/
?>
答案 1 :(得分:9)
Olson数据库 - 可从ftp://ftp.iana.org/tz/releases/或http://www.iana.org/time-zones获得(但另见http://www.twinsun.com/tz/tz-link.htm * 和http://en.wikipedia.org/wiki/Tz_database) - 这些数据库的来源名。文件理论中的文档包括如何形成区域名称的描述。这可以帮助您确定名称的长度。
最长的'当前'名称是30个字符(America / Argentina / Buenos_Aires, America / Argentina / Rio_Gallegos,America / North_Dakota / New_Salem);最长的'向后兼容'名称是32个字符(America / Argentina / ComodRivadavia)。
* 请注意,TwinSun网站尚未更新一段时间,并且有一些过时的链接(例如建议可以从ftp://ftp.elsie.nci.nih.gov获得Olson数据库 - 它是现在可以从IANA获得。)
答案 2 :(得分:0)
来自manual:
<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
for ($i=0; $i < 5; $i++) {
echo "$timezone_identifiers[$i]\n";
}
?>
答案 3 :(得分:0)
如果您在MySQL中使用MySQL,请考虑MySQL已将Olson时区名称存储在“mysql”系统数据库中,名为“time_zone_name”的表中,名为“name”。一种选择是选择列的长度以匹配MySQL使用的长度。在MySQL 5.7中,时区名称长度为64个字符。要确定MySQL安装的使用长度,请按照以下示例进行操作:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
title = 'app works';
}