php setlocale在任何带日期的变量之前添加'b'

时间:2018-03-01 13:08:29

标签: php laravel date locale

这行代码: $date = strftime("%B", strtotime(Date("F"))) . " " . Date("y");应该返回:"March 18",根据以下语言环境配置

cat /etc/locale.conf
LANG="en_US.UTF-8"

我在php文件中的内容是:setlocale(LC_TIME, 'pt_PT');,以便返回:"Março 18"。以前,这工作得很好,但今天发生的事情是价值$date正在返回b"Março 18"

我的'逐战试验'产生了这5个最终结果:

$str = "Hi";
$dateOne = strftime("%B", strtotime(Date("F")));
$dateTwo = Date("y");
$strAndDateOne = $str.$dateOn;
$strAndDateTwo = $str.$dateTwo;

输出:

dd($str,$dateOne,$dateTwo,$strAndDateOne,$strAndDateTwo);

"Hi"
b"Março"
"18"
b"HiMarço"
"Hi18"

我不知道那是什么,我的功能停止了。 (老实说,我不记得以前是否有b,但我肯定不是这样)。

之前到现在有什么不同: 我创建了一个不再使用的交换文件(在昨天和今天之间),这是我在机器上唯一做过的事情。

2 个答案:

答案 0 :(得分:1)

我知道这个话题很老,但为了解决这个问题,你需要把你的" strftime" " utf8_encode"内的方法方法:

utf8_encode(strftime("%B", strtotime(Date("F"))));

答案 1 :(得分:0)

试试这个:setlocale(LC_TIME,' pt_PT.UTF-8');

您需要指定" UTF-8"