如何确定当前给定语言环境的短日期格式呢?
例如,如果我的脚本语言环境设置为荷兰语,我希望以某种方式获取该特定语言环境使用的短日期格式:
dd-mm-yyyy
如果语言环境设置为美国英语,则希望获取美国英语环境下的日期格式:
mm/dd/yyyy
以此类推...
您可以使用Intl PHP扩展根据选择的语言环境格式化日期:
$locale = 'nl_NL';
$dateObj = new DateTime;
$formatter = new IntlDateFormatter($locale,
IntlDateFormatter::SHORT, IntlDateFormatter::SHORT);
echo $formatter->format($dateObj);
如果你只是想获取用于格式化日期的模式,IntlDateFormatter::getPattern
就是你需要的。$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . $fmt->getPattern();
echo 'First Formatted output is ' . $fmt->format(0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . $fmt->getPattern();
echo 'Second Formatted output is ' . $fmt->format(0);
这将输出:
pattern of the formatter is : MM/dd/yyyy
First Formatted output is 12/31/1969
Now pattern of the formatter is : yyyymmdd hh:mm:ss z
Second Formatted output is 19690031 04:00:00 PST
$formatter->getPattern();
。请参见 http://www.php.net/manual/en/intldateformatter.getpattern.php。 - Amal Murali