我使用this function in About.com来获取今年的今天数字(例如:226)。但是我在不同的计算机上得到不同的结果(正确和+1天),使用this calculator我也得到错误的+1天值。但是使用this one我会获得正确的日期编号。我测试的所有计算机都有正确的日期,小时,时区。
实施例。现在是午夜过了8分钟,所以我得到了正确的一天(226),但在整天午夜之前应该是225,我得到了226.
我认为功能正常,所以问题应该在哪里?
由于
答案 0 :(得分:1)
您在客户端时间和服务器时间之间感到困惑..网站..
http://mistupid.com/calendar/dayofyear.htm正在使用javascript计算使用以下公式的日期
var DayOfYear = Math.ceil((EnteredDate.getTime() - startofyear.getTime()) / one_day) + 1
但是,第二个网站(http://www.epochconverter.com/epoch/daynumbers.php)正在使用服务器时间来计算一年中的某一天。
根据UTC时间更新以获取天数。
Date.prototype.getDOY = function() {
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((this - onejan) / 86400000);
}
function convertDateToUTC(date) { return new Date(date.getUTCFullYear(),
date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(),
date.getUTCSeconds()); }
var today = new Date();
var a = convertDateToUTC(today);
var daynum = a.getDOY();
alert(a);
alert(daynum);