PHP strtotime返回空值

时间:2014-08-21 15:35:48

标签: php strtotime

我构建了我的网站,以下列格式将日期写入数据库列: 2014年4月1日

现在我已经意识到当我想按日期排序或操纵日期时这没有用,所以我决定将所有日期更改为时间戳。

我应用了以下修复:

    $sql = mysql_query("SELECT * FROM TABLE")or(die(mysql_Error()));
while($info = mysql_fetch_array($sql)){
        $newdate = strtotime($info['date']);
        mysql_query("UPDATE TABLE SET date = '$newdate' WHERE id = $info[id]")or(die(mysql_error()));
}

问题是所有的日期列现在都是空的,我做错了什么?

1 个答案:

答案 0 :(得分:0)

这一行看起来像语法错误:

mysql_query("UPDATE TABLE SET date = '$newdate' WHERE id = $info[id]")
    or(die(mysql_error()));

尝试将其更改为:

mysql_query("UPDATE TABLE SET date = '$newdate' WHERE id = {$info['id']}")
    or (die(mysql_error()));

原因是当将数组索引插入字符串时,必须用{}包围它们,否则PHP会尝试将$info转换为字符串并在其后插入[id],我猜你不打算这样做。

我还建议检查strtotime的返回值。如果它无法解析日期,则返回false,我猜你不想将其插回到数据库中。