Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么从格式创建日期总是返回false?_Php_Datetime - Fatal编程技术网

Php 为什么从格式创建日期总是返回false?

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

我不是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 ($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');