gpt4 book ai didi

PHP:从本地化格式解析日期

转载 作者:IT王子 更新时间:2023-10-29 00:13:23 30 4
gpt4 key购买 nike

我需要在多语言应用程序中解析日期字符串。每个用户都有自己的语言环境,然后是日期格式。

使用方法:

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 日)

最佳答案

这是答案:

$formatter = new IntlDateFormatter("en_US", IntlDateFormatter::SHORT, IntlDateFormatter::NONE);
$unixtime=$formatter->parse($date);

这是使用我的答案进行的先前测试。

<?php
echo "EN locale<br>\r\n";
$date="01/02/2015"; //2th Jan
$formatter = new IntlDateFormatter("en_US", IntlDateFormatter::SHORT, IntlDateFormatter::NONE);
$unixtime=$formatter->parse($date);
$datetime=new DateTime();
$datetime->setTimestamp($unixtime);
echo $datetime->format('Y-m-d');
echo "<br>\r\n";

echo "IT locale<br>\r\n";
$date="01/02/2015"; //1th Feb
$formatter = new IntlDateFormatter("it_IT", IntlDateFormatter::SHORT, IntlDateFormatter::NONE);
$unixtime=$formatter->parse($date);
$datetime=new DateTime();
$datetime->setTimestamp($unixtime);
echo $datetime->format('Y-m-d');
echo "<br>\r\n";

不幸的是,我无法获得赏金...:-)

关于PHP:从本地化格式解析日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31583577/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com