JavaScript Date オブジェクトに 30 分を追加するには、次のことができます。次の手順を使用します:
Library
多くの日付処理を行っている場合は、Luxon、Day.js、Moment.js などの JavaScript 日付ライブラリを検討するとよいでしょう。たとえば、Moment.js の場合、これは単純に次のようになります。
var newDateObj = moment(oldDateObj).add(30, 'm').toDate();
Vanilla JavaScript
これはカオスの答えに似ていますが、一行で言えば次のようになります。
var newDateObj = new Date(oldDateObj.getTime() diff*60000);
ここで、diff は、oldDateObj の時間との分単位の差です。負の値になることもあります。
複数の場所でこれを行う必要がある場合は、再利用可能な関数として次のように指定します。
function addMinutes(date, minutes) {
return new Date(date.getTime() + minutes*60000);
}
これが明らかではない場合に備えて、分に 60000 を掛ける理由は、分を次のように変換するためです。
バニラ JavaScript には注意してください。日付は難しいです!
明日の日付を得るには、日付に 24 時間を追加できると思うかもしれませんね?違います!
ユーザーが夏時間を遵守している場合、1 日は必ずしも 24 時間ではないことがわかります。 23 時間しかない日が 1 年に 1 日あり、25 時間の日が 1 年に 1 日あります。たとえば、米国とカナダのほとんどの地域では、2014 年 11 月 2 日の午前 0 時から 24 時間経過しても、まだ 11 月 2 日です。
const NOV = 10; //JS の月が 1 つずれているため...
addMinutes(new Date(2014, NOV, 2), 60*24); //米国では、11 月 3 日の午前 12 時ではなく、11 月 2 日の午後 11 時に印刷されます!
このため、これで多くの作業を行う必要がある場合は、前述のライブラリのいずれかを使用する方が安全です。
以下は、私が作成したこの関数のより一般的なバージョンです。私はやはりライブラリを使用することをお勧めしますが、それはあなたのプロジェクトにとっては過剰であるか不可能かもしれません。構文は、MySQL の DATE_ADD 関数に基づいてモデル化されています。
/**
function dateAdd(date, Interval, Units) {
if(!( dateinstanceofDate))
return undefined;
var ret = new日付(日付); //元の日付を変更しない
var checkRollover = function() { if(ret.getDate() != date.getDate()) ret.setDate(0);};
switch(String(interval) ).toLowerCase()) {
case 'year' : ret.setFullYear(ret.getFullYear() + units); checkRollover(); break; case 'quarter': ret.setMonth(ret.getMonth() + 3*units); checkRollover(); break; case 'month' : ret.setMonth(ret.getMonth() + units); checkRollover(); break; case 'week' : ret.setDate(ret.getDate() + 7*units); break; case 'day' : ret.setDate(ret.getDate() + units); break; case 'hour' : ret.setTime(ret.getTime() + units*3600000); break; case 'minute' : ret.setTime(ret.getTime() + units*60000); break; case 'second' : ret.setTime(ret.getTime() + units*1000); break; default : ret = undefined; break;
}
return ret;
}
動作する jsFiddle デモ。
以上がJavaScript の日付オブジェクトに 30 分を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。