我得到了这样的脚本:
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,因为当我设置你的日期时,它不会更新。有什么帮助吗?
发布于 2012-12-10 23:55:58
不要将日期存储在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之前,您正在尝试回显它。
发布于 2012-12-10 23:33:15
看起来您在更新查询中缺少一些引号"或'。你可能想写下:
$sql = "UPDATE xxx SET next_sunday = '$nextsunday'";旁注:myslq_*函数是deprecated,您不应该再在新代码中使用它们。
https://stackoverflow.com/questions/13803943
复制相似问题