20

JavaScriptで日付オブジェクトの時間を変更するエレガントな方法を知っていますか

奇妙さは Number オブジェクトを返すセッターです

var date = new Date().setHours(0,0,0,0);

日付は日付ではなく数値です..

だから私は日付を持っているとしましょう var date = new Date()

そして時間を変えたい

ありがとうございました

4

5 に答える 5

24
var date = new Date();
date.setHours( 0,0,0,0 );

setHours()実際には次の 2 つの効果があります。

  1. 適用されるオブジェクトを変更します
  2. その日付オブジェクトの新しいタイムスタンプを返します

したがって、あなたの場合は、オブジェクトを作成し、後で時間を個別に設定するだけです。必要がない場合は、戻り値を完全に無視できます。

于 2012-12-06T10:02:20.197 に答える
6
// Create date.  Left empty, will default to 'now'
var myDate = new Date();

// Set hours
myDate.setHours(7);

// Then set minutes
myDate.setMinutes(15);

// Then set seconds
myDate.setSeconds(47);
于 2012-12-06T10:01:50.087 に答える
2
var date = new Date()
date.setUTCHours(15,31,01);

This will return a time of 15::31:01

More info here

于 2012-12-06T10:05:51.723 に答える
1

それを行う方法は、たとえば、現在の日の真夜中を取得します。

var date = new Date(); // Datetime now
date.setHours(0, 0, 0, 0);
console.log(date); // Midnight today 00:00:00.000

このsetHours関数はオブジェクトではなくタイムスタンプを返しますがDate、元のオブジェクトを変更しDateます。

タイムスタンプを使用して、新しい日付オブジェクトを初期化し、演算を実行できます。

var timestamp = new Date().setHours(0, 0, 0, 0);
var date = new Date(timestamp); // Midnight today 00:00:00.000
var hourBeforeMidnight = timestamp - (60 * 60 * 1000);
var otherDate = new Date(hourBeforeMidnight); // Date one hour before

タイムスタンプは、 を呼び出した場合に取得する値と同じですgetTime

var timestamp = date.getTime();
于 2012-12-06T10:02:55.210 に答える
1

このスニペットは、時刻を 0:0:0 に変換します。これは、1 日の 0 時からデータをフィルタリングする場合に必要です。日付の ODATA フィルタリングに便利

                    var a = new Array();
					var b = new Array();
					var c = new Array();
					var date = new Date().toJSON();
					a = date.split("T");
					a = a[0];
					b = a.split("-");
					var currentDate = new Date(b[0],b[1] - 1, b[2] + 1 ,-19,30,0).toJSON();
					c = currentDate.split(".");
					var newDate = c[0];
console.log(newDate);

于 2016-11-03T06:42:36.033 に答える