ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の日付オブジェクトに 30 分を追加するにはどうすればよいですか?

JavaScript の日付オブジェクトに 30 分を追加するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-04 10:50:40
オリジナル
974 人が閲覧しました

How to Add 30 Minutes to a JavaScript Date Object?

JavaScript Date オブジェクトに 30 分を追加するには?

gt;

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 関数に基づいてモデル化されています。

/**

  • 日付に時間を追加します。 MySQL の DATE_ADD 関数をモデルとしています。
  • 例: dateAdd(new Date(), 'minute', 30) //今から 30 分後を返します。
  • https://stackoverflow.com/a /1214753/18511
  • @param date 開始する日付
  • @param Interval: year、qual、month、week、day、hour、minut、sec のいずれか
  • @param Units 追加する指定された間隔の単位数.
    */

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート