【发布时间】:2015-07-23 09:38:35
【问题描述】:
我需要在多语言应用程序中解析日期字符串。每个用户都有自己的语言环境和日期格式。
使用方法:
new DateTime($datestr);
或
date_parse($datestr);
使用本地化日期格式?
假设 mm/dd/yyyy 为 EN 日期格式,dd/mm/yyyy 为 IT 日期格式,我做了这个测试:
<?php
echo "EN locale<br>\r\n";
setlocale(LC_ALL, 'en_US');
$date="01/02/2015"; //2th Jan
$date_array=date_parse($date);
$mktime=mktime($date_array['hour'], $date_array['minute'], $date_array['second'], $date_array['month'], $date_array['day'], $date_array['year']);
$datetime=new DateTime($date);
echo date("Y-m-d",$mktime);
echo "<br>\r\n";
echo $datetime->format('Y-m-d');
echo "<br>\r\n";
echo "IT locale<br>\r\n";
setlocale(LC_ALL, 'it_IT');
$date="01/02/2015"; //1th Feb
$date_array=date_parse($date);
$mktime=mktime($date_array['hour'], $date_array['minute'], $date_array['second'], $date_array['month'], $date_array['day'], $date_array['year']);
$datetime=new DateTime($date);
echo date("Y-m-d",$mktime);
echo "<br>\r\n";
echo $datetime->format('Y-m-d');
结果是相同的输出,两种语言环境设置都以 mm/dd/yyyy 格式提供解析。输出始终为 2015-01-02(2 月 2 日)
【问题讨论】:
-
看到这个关于你需要什么的类似问题stackoverflow.com/questions/8827514/…。您需要使用
set_locale和getDateFormat -
为什么我找不到任何关于 getDateFormat() 的文档?
-
抱歉@Tobia,我急于写我的评论,getDateFormat,是一个自定义函数,将根据语言环境返回日期格式
标签: php parsing date localization