Javascript文件 - 错误的功能?需要帮忙!

时间:2009-12-08 20:18:52

标签: javascript html function

我正在尝试查看我的JavaScript文件的功能是否正确写入以显示“2006年12月24日星期日”。所以这是功能:

function XmasDays(thisDate) {    

  var XMYear = thisDate.getFullYear();    
  var XMDay = new Date("December, 25, 2005"); 

  XMDay.setFullYear(XMYear);    

  var dayTotal = (XMDay-thisDate)/(1000*60*60*24);
  dayTotal = Math.round(dayTotal);   

  return dayTotal; 
} 

我测试了以下内容:

var XMYear=thisDate.getFullYear();    
var XMDay=new Date("December, 25, 2005");  
XMDay.setFullYear(XMYear);

并且他们将正确的信息输出到我的网页,但我似乎无法弄清楚以下三个是否正确写入你能帮我看看是否有任何错误?谢谢!

var dayTotal=(XMDay-thisDate)/(1000*60*60*24); 

dayTotal=Math.round(dayTotal);

return dayTotal;

如果您有任何疑问,请询问。非常感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

我找到了使以下功能有效的解决方案:

function XmasDays(thisDate) {
   var XMYear=thisDate.getFullYear();
   var XMDay=new Date("December, 25, 2005");
   XMDay.setFullYear(XMYear);
   var dayTotal=(XMDay-thisDate)/(1000*60*60*24);   
   dayTotal=Math.round(dayTotal);
   return dayTotal;
}

我需要做的就是从函数中删除XMDay.setFullYear(XMYear);,因为这样可以从日期中删除以前的数据并使其混淆。然后我将.getTime()添加到函数的这一部分:

var dayTotal=(XMDay-thisDate)/(1000*60*60*24);

所以它看起来像这样:

var dayTotal=(XMDay.getTime()-thisDate.getTime())/(1000*60*60*24);

要更改日期以获得不同的结果,请转到:

var XMDay=new Date("December 25, 2009");

并更改括号内的日期。完成上述所有操作后,功能正常,并显示日期和正确的天数,直到圣诞节以及相应的评论。所以我修改后的函数如下所示:

function XmasDays(thisDate) {
   var XMYear=thisDate.getFullYear();
   var XMDay=new Date("December 25, 2009");
   var dayTotal=(XMDay.getTime()-thisDate.getTime())/(1000*60*60*24);
   dayTotal=Math.round(dayTotal);
   return dayTotal;
}

感谢那些回答并给我提示的人,但我已经明白了。尽管您的意见和帮助我非常感激!

答案 1 :(得分:0)

您可能会喜欢Date.js

上面的问题显示您正在减去两个日期对象。从每个对象中获取适当的单位(天?)并减去它们。

See here

答案 2 :(得分:0)

您应首先确定您希望函数执行的操作:哪种输入对它有效,以及给定输入的输出应该是什么。

然后你应该检查它是否确实如此。要么通过查看代码,要么将各种参数作为输入并查看其输出。

你说:'我试图看看我的JavaScript文件的功能是否正确写入才能显示“2006年12月24日星期日”。但是你可能不希望函数总是做同样的事情,无论thisDate参数值是什么。此外,该功能不显示任何内容,因此它显然不会按照您的描述进行操作。

答案 3 :(得分:0)

在您的代码中添加警报,或者在返回之前将输出写入页面,以查看值是什么(如果您尚未使用)。

对于我今天的日期,即12月8日下午1:20,您的代码将返回16。这可能是正确的,取决于你想要什么。圣诞节到午夜12点还有~16.44天。

// Number of milliseconds from now until midnight Christmas
// divided by the number of milliseconds in a day, which
// gives the number of days until Christmas
var dayTotal=(XMDay-thisDate)/(1000*60*60*24); 

// This rounds the number to the closest whole number
// Rounding up might be more appropriate in this case
dayTotal=Math.round(dayTotal);

// Debug output
alert(dayTotal);

return dayTotal;

我会说你可能想要Math.ceil,给你四舍五入的天数,因为如果你在圣诞节的午夜12小时之后,我会说还有一天还有一天,直到你到达午夜

但除此之外,你的代码似乎是正确的。