PHP TZ设置长度

kar*_*rlw 6 php timezone

我想知道PHP中时区设置的最大长度是多少?我存储在字符串中的数据库,并且想保持长度尽可能短,但我看到像"加拿大/东萨斯喀彻温省",这超出了我们目前的极限时区.

如果我能只得到所有支持的时区的字符串列表,我可以对它们进行排序,但他们正在拆到几个不同的页面.

linky:http://www.php.net/manual/en/timezones.php

sha*_*mar 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

*/
?>
Run Code Online (Sandbox Code Playgroud)

  • 我认为答案是42 - 是不是总是42? (9认同)
  • 值得注意的是,OP将宽度设置为32将是一个巨大的错误.它应该设置得更高 - 以防万一. (3认同)
  • @karlw,如果你不知道,42的答案就是参考银河系的旅行者指南中的"对生命,宇宙和一切的回答".它本来是有趣的.;) (3认同)

Jon*_*ler 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获取).