我有这样的mysql日期2013-10-16 17:44:13
,我需要从那里得到+30天。我不能使用例如。10th (month) 并将其更改为 11th (month) 因为这可能是 31 天或 29 取决于月份
我只能想到将2013-10-16 17:44:13
时间戳转换为+30*24*60*30,然后将这个新的时间戳转换回mysql格式
有没有更好的办法?
您可以strtotime
为此使用:
$date = date('Y-m-d H:i:s', strtotime($date . ' +30 days'));
或者直接在 MySQL 中使用DATE_ADD
:
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
旧版本需要的任何证据,但我发誓我在某处听说过。把它和一粒盐一起吃,然后用你喜欢的任何方法。
既然你提到了 mysql,你可以用 mysql 函数来做
select NOW() + interval 30 day as NEW_DATE
现在,可以用您数据库中的日期替换
select date_field + interval 30 day as NEW_DATE from YOUR_DB