我正在努力做到,我认为这是一个简单的任务,即为日期添加日期。
我有一个日期存储在一个名为meta_date
的列中的MySQL表中,其类型为DATE
(日期,支持的范围是1000-01-01到9999-12-31 )
我从数据库中检索此日期,如下所示:
$thisId = 1;
$dateQuery = mysqli_query($connection, "SELECT * FROM `sometable` WHERE `id` = '$thisId'");
$fetchDate = mysqli_fetch_assoc($dateQuery);
$theDate = $fetchDate['meta_date'];
现在我在这个日期添加了几天。
$newDate = date("Y-m-d", strtotime($theDate . " + 7 days"));
接下来,我使用UPDATE
查询将其放回数据库中。
$editDate = mysqli_query($connection, "UPDATE `sometable` SET `meta_date` = '$newDate' WHERE `id` = '$thisId'");
但是,更新后日期始终返回为0000-00-00
。
我是否遗漏了与PHP处理日期的方式有关的事情?
编辑:我首先从数据库中检索的数据(进入$theDate
)是“2016-11-30”。
答案 0 :(得分:0)
您可以使用内置函数DATE_ADD()
<强> SYNTEXT 强>
DATE_ADD(date,INTERVAL expr type)
其中date是有效的日期表达式,expr是您要添加的间隔数。
对于你的情况
UPDATE sometable
SET `meta_date` = DATE_ADD(`meta_date` , INTERVAL 7 DAY)
WHERE `id` = '$thisId';