如何从特定日期起30天内获得确切日期?

时间:2013-10-16 18:36:17

标签: php mysql date

我有像这个2013-10-16 17:44:13的mysql日期,我需要从那里获得+30天。我不能用eg。 10日(月)并将其更改为第11个月(月),因为这可能是31天或29天,具体取决于月份

我只能考虑将2013-10-16 17:44:13转换为时间戳而不是+ 30 * 24 * 60 * 30,而不是将此新时间戳转换为mysql格式

有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用strtotime

$date = date('Y-m-d H:i:s', strtotime($date . ' +30 days'));

或使用DATE_ADD直接在MySQL中执行:

SELECT DATE_ADD(`date`, INTERVAL 30 DAY) as `date` FROM `table`

如果您运行较新版本的MySQL,则无需使用DATE_ADD

SELECT (`date` + INTERVAL 30 DAY) as `date` FROM `table`

请注意,虽然strtotime足够聪明,但MySQL 要求您使用DAY。不是DAYS

编辑:我无法找到旧版本中需要DATE_ADD的任何证明,但我发誓我已经在某处听到过。拿一粒盐,用你喜欢的任何方法。

答案 1 :(得分:2)

因为你提到mysql你用mysql函数做了

select NOW() + interval 30 day as NEW_DATE

现在,可以用数据库中的日期替换

select date_field + interval 30 day as NEW_DATE from YOUR_DB