私は持っている:
任意の日付 (GMT+00:00)UTC
var d = new Date(y, m, d, h, min, s);
および時差 (時間単位)
var visitortime = new Date();
var time_offset = visitortime.getTimezoneOffset()/60;
長い手作り関数を書かずに、違いを考慮して新しい日付を計算するにはどうすればよいですか?
私は持っている:
任意の日付 (GMT+00:00)UTC
var d = new Date(y, m, d, h, min, s);
および時差 (時間単位)
var visitortime = new Date();
var time_offset = visitortime.getTimezoneOffset()/60;
長い手作り関数を書かずに、違いを考慮して新しい日付を計算するにはどうすればよいですか?
Date
インスタンスに時間を追加したい場合は、Date.setHours
メソッドを利用できます。
var userTime = new Date();
// Add four hours to the `userTime` date instance.
userTime.setHours(userTime.getHours() + 4);
これを再利用可能にしたい場合は、Date
オブジェクトのプロトタイプに新しいメソッドを追加できます。
// Add the supplied number of hours to a Date instance.
Date.prototype.addHours = function (value) {
this.setHours(this.getHours() + value);
};
次に、次のように簡単に書くことができます。
var userDate = new Date();
userDate.addHours(4);
コードで多くの日付操作を行う予定がある場合は、新しいメソッドをDate
プロトタイプ、あなたのコードは移植性を保ちます。moment.js を使用して Date インスタンスに 4 時間を追加する方法を次に示します。
var result = moment().add("hours", 4);
サンプル:
<div id="d1"></div>
<div id="d2"></div>
<script type="text/javascript">
var d1 = document.getElementById('d1'),
d2 = document.getElementById('d2'),
hours = 3,
date1 = new Date(),
date2 = new Date();
date2.setTime(date1.getTime() + hours * 3600000);
d1.innerHTML = date1;
d2.innerHTML = date2;
</script>