【发布时间】:2013-06-07 15:24:12
【问题描述】:
我还没有在网上找到解决方案,因为我认为这是我使用日期格式的方式。
问题:我有一个日期格式:2013-06-07 这个格式是由以下创建的:
$thedate = (string) substr($item->children('http://www.w3.org/2005/Atom')->updated,0,-15) . ' - '; - 取自 RSS 提要,并经过修剪,因此仅表示年、月和日。
然后我用这个,得到相同的,每个都是今天的日期:
$day = (string) date('Y-m-d');
因此,当我执行 IF 语句时,日期应该匹配,然后才进入数据库:
if($day == $thedate) {
echo ($day . '\n' . $thedate);
$sql = "INSERT INTO rssFeed (date, stage, title, description, location, billtype, link) VALUES('".
$thedate ."','". $stage . "','" . $title . "', '" . $desc ."', '" . $location ."', '" . $billtype ."', '". $linkurl ."')";
//print_r($sql);
$inres = $mysqli->query($sql);
print_r($mysqli->error);
} else {
echo ('They do not match');
}'
没有 IF 语句它工作正常,我打印了两个日期并且它们是相同的,但是,无论出于何种原因,该语句出现在控制台中,不一样,只有“它们不匹配”,或者放入数据库。没有错误。
有什么想法吗?
【问题讨论】:
-
尝试使用 var_dump 而不是 echo,确保您的 substr 版本没有尾随或前导空格。 (也尝试只做 10,而不是 -15?)请注意,您不需要将它们显式转换为字符串。
-
你使用了双引号,所以你根本不需要连接变量。
-
是的,对两者都执行 var_dump 并确保它们也是相同的数据类型。它们都应该是字符串并且没有尾随空格。
-
你为什么要输入
date? -
date(Y-m-d)的输出长度为 10 个字符。即使您的substr($x, 0, -15)的长度为 10 个字符,您还可以将另外 3 个字符附加到$thedate(' - ')。因此,您比较 10 和 13 个字符的字符串,这将失败。
标签: php if-statement compare