Php 为什么从格式创建日期总是返回false?
我不是php程序员,但命运决定我需要通过它Php 为什么从格式创建日期总是返回false?,php,datetime,Php,Datetime,我不是php程序员,但命运决定我需要通过它 $vote_date = date_create_from_format("H:i:s d.m.y", $last_vote_date_str); //$last_vote_date_str is 19:45:12 25.12.13 if ($vote_date == false) echo "<span style='color:red'>Error: Unable to parse the last vote date ($l
$vote_date = date_create_from_format("H:i:s d.m.y", $last_vote_date_str); //$last_vote_date_str is 19:45:12 25.12.13
if ($vote_date == false)
echo "<span style='color:red'>Error: Unable to parse the last vote date ($last_vote_date_str) -> (".date_format($vote_date, "Y-m-d H:i:s").")!<br><br></span><br>";
但是最后一次投票日期在您的var\u dump()
outpu显示string(26)“19:45:12 25.12.13”后变为空。它应该改为string(17)
。因此,在实际的$last\u vote\u date\u str
字符串中有9个隐藏字符,这导致函数无法工作
将以下代码行添加到脚本顶部,并再次刷新页面以检查var\u dump()
输出:
header('Content-Type: text/plain');
这将把文档的内容类型设置为纯文本,并将显示所有字符,您可以轻松找到导致错误的原因。由于您有一些“不可见”字符,您可以使用正则表达式删除它们:
$last_vote_date_str=trim(preg_replace(“~[^\d:.]~”,“$last_vote_date_str));
上面的代码将删除所有字符,这些字符不是带有空格的数字、:
或
。发布var\u dump($last\u vote\u date\u str)的输出代码>。对我有用:@AmalMurali:在某种程度上,他已经做到了。:)因为它说字符串有26个字符长,但我们只能看到17个字符,所以其中一定有额外的字符。时间和日期之间可能有更多的空格?数字不应该用两个字节编码。呃,现在我只看到页面的html代码,无法检查。在页面中输入一些数据后,我从另一个站点读取了这个日期值。如果我查看读取日期的页面的html代码,它与19:45:12 25.12.13相同
header('Content-Type: text/plain');