strtotime php函数在php文件中输出良好的时间,但在MySQL中更新后出错



我得到了这样的脚本:

mysql_connect('localhost', 'xxx', 'xxx');
mysql_select_db('xxx');
$sql = "SELECT * FROM rl_cronjobs";
$sql = mysql_query($sql);
$row = mysql_fetch_array($sql);
$sunday = $row['next_sunday'];
$today = date('Y-m-d');

if($sunday == $today){
    $sql = "DELETE * FROM xxx WHERE stala != 1";
    $sql = mysql_query($sql);
    echo $nextsunday;
    $nextsunday = strtotime("next Sunday");
    $nextsunday = date('Y-m-d', $nextsunday);   
    $sql = "UPDATE xxx SET next_sunday = $nextsunday";
    $sql = mysql_query($sql) or die (mysql_error());
    echo $nextsunday;
}

在MySQL中,它的值是:1984我需要它是下周日的正常日期

MySQL 表行的类型是 varchar,因为当我设置 tu 日期时它不会更新。有什么帮助吗?

不要将日期存储在 varchar 字段中。Mysql 为这些事情提供了日期、日期时间和时间戳字段,使用它们打开了一个充满新可能性的世界。例如,您的"下一个星期日"计算可以简单地完成:

UPDATE xxx SET next_sunday = NOW() + INTERVAL (8 - DAYOFWEEK(NOW())) DAY

而不涉及 PHP 时间函数。请注意,此特定函数将始终选择下周日的真实值,因此如果您在星期日运行此代码,您将获得接下来几周的星期日,而不是"今天",例如:

'2012-12-08' (Saturday) -> '2012-12-09'
'2012-12-09' (Sunday)   -> '2012-12-16'
'2012-12-10' (Monday)   -> '2012-12-16'

此外,请注意,您正在尝试在定义之前回显$nextsunday

看起来您在更新查询中缺少一些引号"'。你可能想写:

$sql = "UPDATE xxx SET next_sunday = '$nextsunday'";

旁注:myslq_*函数已弃用,您不应再在新代码中使用它们。

相关内容

  • 没有找到相关文章

最新更新