问题描述
||
我正在从数据库中提取一些日期,并使用PHP
strftime
对其进行格式化。
现在,一切都按预期工作,除了如果我使用%A
格式(应该为我提供完整的工作日名称),则该函数只会返回NULL,除非日期恰好在周末,在这种情况下,它会正确返回\“周六或周日\”。
所有其他格式都可以使用,甚至是ѭ2short(工作日简称)。
它似乎不取决于我使用的语言环境,也不取决于日期的特定格式(如果我仅在mktime
上使用strftime
,则会发生相同的问题。
我唯一的想法是这是服务器方面令人难以置信的怪异配置问题,但是我想听听是否有人对此有其他想法...
编辑:一些代码,虽然这几乎是我之前写过的...
$id = (int)$_GET[\'event\'];
$res = mysql_query(\"SELECT date FROM events WHERE event_id=\".$id);
$row = mysql_fetch_array($res);
echo strftime(\"%a %H:%M\",$row[\'date\']);
echo strftime(\"%A %H:%M\",$row[\'date\']);
第一个回波可以正常工作,例如返回Thu 15:30
,第二个返回NULL,除非$row[\'date\']
落在星期六或星期日。
如果这对您有帮助,那么代码在类中,但是我看不到它如何影响结果...
EDIT2:这不是数据库或日期格式的问题,否则第一个回显将不起作用。另外,我只需要删除数据库代码,并用mktime
或strtotime
生成日期,它仍然无法使用。
EDIT3(解决方案):找到了问题。在意大利语中,日子的名称以“(例如luned”)结尾,除了周六和周日(不含重音字母)。运算的结果传递给了json_encode
,它显然不喜欢带重音符号的字符...调用utf8_encode
(或htmlentities
)可以解决此问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)