我有像这个2013-10-16 17:44:13
的mysql日期,我需要从那里获得+30天。我不能用eg。 10日(月)并将其更改为第11个月(月),因为这可能是31天或29天,具体取决于月份
我只能考虑将2013-10-16 17:44:13
转换为时间戳而不是+ 30 * 24 * 60 * 30,而不是将此新时间戳转换为mysql格式
有更好的方法吗?
答案 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