我试图以这种方式使用wordpress $ wpdb:
function check_date($date) {
global $wpdb;
$pub = "publish";
$query = $wpdb->prepare("SELECT post_date FROM " . $wpdb->posts . " WHERE post_name = %s AND post_status = %s;", sanitize_title_with_dashes($result[$i]->title), $pub);
$cID = $wpdb->get_row( $query );
echo "". date("Y/m/d", strtotime($cID->post_date)) . " == ".$date. "<br />";
return (date("Y/m/d", strtotime($cID->post_date)) == $date);
}
echo语句的输出应为:
2014/05/31 == 2014/05/31
但它显示:
1970/01/01 == 2014/05/31
当我将代码更改为仅包含1 $ arg时,它就会以这种方式工作,即
$query = $wpdb->prepare("SELECT post_date FROM " . $wpdb->posts . " WHERE post_name = %s;", sanitize_title_with_dashes($result[$i]->title));
它将输出显示在:
下2014/06/01 == 2014/05/31
这是不正确的,因为它是我试图获取日期的帖子的草稿或修订日期。
任何帮助将不胜感激。
感谢。
答案 0 :(得分:2)
1970/01/01
,因为您的查询失败。这是0日期; unix时间戳的开始。
无论如何,我怀疑你是否按预期使用了API,但我不知道wordpress,因此你需要亲自检查wordpress API。
答案 1 :(得分:0)
这篇文章:PHP strtotime returns a 1970 date when date column is null解释了您的问题。似乎额外的条件导致没有返回行,因此post_date
中的NULL值。