0

このようなmysqlの日付が2013-10-16 17:44:13あり、そこから+30日を取得する必要があります。私は使用できません。10 日 ( 月 ) を 11 日 ( 月 ) に変更します。これは、月によって 31 日または 29 日になる可能性があるためです。

2013-10-16 17:44:13+ 30*24*60*30 よりもタイムスタンプに変換し、この新しいタイムスタンプを mysql 形式に戻すことしか考えられません

より良い方法はありますか?

4

2 に答える 2

3

これに使用できます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、どこかで聞いたことがあることを誓います. 一粒の塩でそれを取り、好きな方法を使用してください.

于 2013-10-16T18:39:04.460 に答える
2

mysqlについて言及したので、mysql関数でそれを行います

select NOW() + interval 30 day as NEW_DATE

今、あなたのデータベースの日付に置き換えることができます

select date_field + interval 30 day as NEW_DATE from YOUR_DB
于 2013-10-16T18:41:06.177 に答える