javascript自定义日期显示(stardate)无法正常工作

时间:2015-12-12 17:06:42

标签: javascript

我正在为一个网站制作一个标准的显示器。我正在使用新的StarTrek Into Darkness stardate,因为STTNG使用的是季节数,与时间没有真正的1:1关系,而新的STID确实如此。这是我的代码。

function stardate() {
int theYear=0;
int theDay

var today = new Date();
var year = today.getFullYear();

Date.prototype.dayOfYear= function(){
var j1= new Date(this);
j1.setMonth(0, 0);
return Math.round((this-j1)/8.64e7);
return new Date().dayofYear();
}
theDay = Number(dayOfYear);

theYear = Number(year - 2015 + 2415);

return "Stardate: " + theYear.ToString + "." + theDay.ToString;

}

然后我用来显示它的HTML就在这里:

<div id="stardate" alight="right">
<script type="text/javascript">
document.getElementById("stardate").innerHTML = stardate().ToString +
'</p>';
</script>
</div>

有什么显而易见的我做得不对吗?

1 个答案:

答案 0 :(得分:1)

你有一些类似ToString的拼写错误。

同样toString(小写字母t)是一种方法,因此您必须使用parens调用它:.toString()

如果你没有将parens添加到方法中,你将传递函数的引用而不是结果,如theDay = Number(dayOfYear);。在这里,您必须为方法dayOfYear添加parens:theDay = Number(today.dayOfYear());(还添加了today.,因为您已将方法dayOfYear声明为Date方法

您还使用int关键字声明了变量,但在JavaScript中没有输入变量。您应该只使用关键字var来实现此目的。

工作代码:

function stardate() {
  var theYear = 0;
  var theDay;

  var today = new Date();
  var year = today.getFullYear();

  Date.prototype.dayOfYear = function() {
    var j1 = new Date(this);
    j1.setMonth(0, 0);
    return Math.round((this - j1) / 8.64e7);
  }

  theDay = Number(today.dayOfYear());

  theYear = Number(year - 2015 + 2415);

  return "Stardate: " + theYear.toString() + "." + theDay.toString();
}

document.getElementById("stardate").innerHTML = '<p>' + stardate() + '</p>';
<div id="stardate" alight="right"></div>