约会问题

时间:2010-05-15 23:30:18

标签: php mysql

是否可以像这样使用date_sub?

$dt = date("Y-m-d h:i:s");

$query = "INSERT INTO `table` (`date`) VALUES ('DATE_SUB('$dt', INTERVAL 15 DAY)')";

$result = MYSQL_QUERY($query);

由于

3 个答案:

答案 0 :(得分:1)

我建议你不要将日历计算留给数据库。请改用DateTime class并更新timezonedb扩展程序。这实际上就是PHP正确的事情。

另见Derick博客上的this post

答案 1 :(得分:1)

这是错误的'DATE_SUB('$dt', INTERVAL 15 DAY)',这是一个字符串。

现在,您的日期格式与MySQL NOW()函数使用的格式相同。

SELECT NOW();
---------------------
|now()              |
---------------------
|2010-05-15 20:42:35|
---------------------

由于我在最近的一个项目中使用时没有遇到任何问题DATE_SUB(NOW(), INTERVAL 6 MONTH);,我认为没有任何理由不能使用它。

SELECT DATE_SUB( NOW( ) , INTERVAL 6 MONTH );
-----------------------------------
|DATE_SUB(NOW(), INTERVAL 6 MONTH)|
-----------------------------------
|2009-11-15 20:49:28              |
-----------------------------------

答案 2 :(得分:0)

您可以删除DATE_SUB(...)周围的引号,在数据库中使用它。 但是你应该考虑使用带有time()的unix时间戳,并使用date()函数将其重新转换为日期格式,如下所示:

$dt = date("Y-m-d h:i:s", time() - 15*24*3600); //today - 15 days

适用于PHP 4和PHP 5.