首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >strtotime php函数在php文件中输出良好的时间,但在MySQL中更新后输出错误

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

Stack Overflow用户
提问于 2012-12-10 23:29:47
回答 2查看 135关注 0票数 1

我得到了这样的脚本:

代码语言:javascript
复制
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,因为当我设置你的日期时,它不会更新。有什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-10 23:55:58

不要将日期存储在varchar字段中。Mysql为这类事情提供了日期、日期时间和时间戳字段,使用它们可以带来许多新的可能性。例如,你的“下个星期天”计算可以像这样简单地完成:

代码语言:javascript
复制
UPDATE xxx SET next_sunday = NOW() + INTERVAL (8 - DAYOFWEEK(NOW())) DAY

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

代码语言:javascript
复制
'2012-12-08' (Saturday) -> '2012-12-09'
'2012-12-09' (Sunday)   -> '2012-12-16'
'2012-12-10' (Monday)   -> '2012-12-16'

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

票数 1
EN

Stack Overflow用户

发布于 2012-12-10 23:33:15

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

代码语言:javascript
复制
$sql = "UPDATE xxx SET next_sunday = '$nextsunday'";

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13803943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档