我从数据库中获取了一些日期,并使用PHP的
第一个回声很好用,例如返回
如果这可能有所帮助,代码位于一个类中,但我看不出这可能会影响结果...
编辑2:这不是数据库或日期格式的问题,否则第一个回声就不会起作用。而且,我可以删除数据库代码,使用
编辑3(解决方案):找到了问题。在意大利语中,星期几的名称以ì结尾(例如lunedì),除了星期六和星期日外,它们没有重音字母。操作的结果传递给
strftime
格式化它们。现在,一切都按预期工作,但是如果我使用%A
格式,这应该给我完整的星期几名称,该函数返回空值,除非日期恰好是周末,在这种情况下,它正确地返回“Saturday”或“Sunday”。所有其他格式都有效,甚至包括%a
(短星期名称)。似乎与我使用的区域设置无关,也与日期的具体格式无关(如果我只是在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
,第二个回声除非$row['date']
落在星期六或星期日,否则返回NULL。如果这可能有所帮助,代码位于一个类中,但我看不出这可能会影响结果...
编辑2:这不是数据库或日期格式的问题,否则第一个回声就不会起作用。而且,我可以删除数据库代码,使用
mktime
或strtotime
生成日期,仍然无法工作。编辑3(解决方案):找到了问题。在意大利语中,星期几的名称以ì结尾(例如lunedì),除了星期六和星期日外,它们没有重音字母。操作的结果传递给
json_encode
,它显然不喜欢重音字符...调用utf8_encode
(或htmlentities
)解决了问题。