如何以编程方式获得PHP中支持的日期格式列表?


How can I get a list of supported date formats in PHP programatically?

DateTimeZone::listIdentifiers()列出PHP支持的所有时区的方式大致相同,是否有一种方法可以让它输出所有日期格式标识符的列表?

格式列表可在此页参考:http://php.net/manual/en/function.strftime.php然而,我似乎找不到一个内部函数,返回这个数组。如果你看一下那个页面上的示例#4,你会发现他们已经手动构建了一个带有格式和描述的数组:

$strftimeFormats = array(
    'A' => 'A full textual representation of the day',
    'B' => 'Full month name, based on the locale',
    'C' => 'Two digit representation of the century (year divided by 100, truncated to an integer)',
    'D' => 'Same as "%m/%d/%y"',
    'E' => '',
    ...

真的没有办法自动获取这个列表吗?

更新:我的具体用例是在模板中。我在我的应用程序中提供了一个模板"语言",我想使用,在其他自定义标签中,标准PHP日期格式标识符,以便用户可以按照他们想要的方式格式化日期。我的应用程序将接收带有标签的模板,如%d%, %y%等,它将返回该标签的值。

我不认为这是不必要的,因为同样的论点也可以用来反对让PHP返回时区名称列表的函数。为什么不简单地编写一个脚本,在时区偏移量和时区名称之间建立自己的关联并使用它呢?为什么让编译器/解释器返回这个信息?

我甚至不同意这是一个边缘情况的论点,因为有无数的应用程序直接基于PHP的官方格式标识符列表来创建他们的模板日期格式。MailChimp的。

没有内置函数来做这个,所以像这样的函数必须做:

function getDateFormatIdentifiers() {
    return str_split('dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU');
}