PHP:为什么在服务器上格式化我的日期不同?

时间:2012-02-09 10:44:45

标签: php datetime

使用以下源代码,我在dev(local-maxOSX)和live(debian)上得到不同的输出:

setlocale(LC_TIME, 'de_DE' ); 
$intervalOutput = strftime('%a %d.%m. %H:%M', $start->getTimestamp());
echo $intervalOutput;

本地(正确格式化当天):做01.03。 20:00

直播服务器(不正确 - 我需要德国工作日输出):星期四01.03。 20:00

有人可以告诉我为什么会这样吗?

3 个答案:

答案 0 :(得分:1)

尝试使用date_default_timezone_set或尝试使用LC_ALL

答案 1 :(得分:1)

我认为这对我有用(这就是为什么我在这里写了这个答案),但后来我意识到这现在不适用于开发(OSX)机器。 (所以我刚编辑了这个答案) 无论如何你都可以试试:

1。)在实时服务器上安装语言环境(以root用户身份):

aptitude install debconf
dpkg-reconfigure locales

2。)改变:

setlocale(LC_TIME, 'de_DE')

setlocale(LC_TIME, 'de_DE.UTF8')

这对我不起作用的原因似乎是在OSX上调用了语言环境 “de_DE.utf-8”,而在debian机器上它被称为“de_DE.UTF8”。

答案 2 :(得分:0)

在两台机器上尝试以下操作。

$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
相关问题