JavaScript を使用して 1 から 366 までの年間通算日を計算するにはどうすればよいですか?
例えば:
January 3
であるべきです3
。February 1
であるべきです32
。
ベストアンサー1
OP の編集に従って:
var now = new Date();
var start = new Date(now.getFullYear(), 0, 0);
var diff = now - start;
var oneDay = 1000 * 60 * 60 * 24;
var day = Math.floor(diff / oneDay);
console.log('Day of year: ' + day);
編集: 上記のコード失敗するnow
3月26日から10月29日までの日付で、時刻が午前1時(例:00:59:59)より前の場合now
、これはコードが夏時間を考慮していないためです。補償するこのために:
var now = new Date();
var start = new Date(now.getFullYear(), 0, 0);
var diff = (now - start) + ((start.getTimezoneOffset() - now.getTimezoneOffset()) * 60 * 1000);
var oneDay = 1000 * 60 * 60 * 24;
var day = Math.floor(diff / oneDay);
console.log('Day of year: ' + day);