さまざまな方法で時間を実行するためのJavaScript関数があります。Chrome ブラウザでは問題なく動作しますが、Internet Explorer では適切な値が表示されません。
Chrome の場合:
2011 年 12 月 13 日 13:14:19
IE8 の場合:
0NaN-undefined-NaN 0NaN:0NaN:0NaN
どちらのブラウザからでも、このページのリンクからこれを表示できます。ページhttp://chemfluence.org.in/monetarist/sample.phpのソースコードも見て ください。
私のコード:
<div id="txt" title="Industries will generate products on every 3 Virtual days.
12 Virtual Days = 1 Real day. dd-Mon-yyyy HH:MM:SS ."></div>
Javascript
<script type='text/javascript'>//<![CDATA[
var virtualOrigin = Date.parse("2012-02-27T00:00:00"),
game_start_realdate=Date.parse("2013-01-27T12:00:00"),
realOrigin = Date.now(),
factor = 12;
function getVirtual(time) {
return new Date( virtualOrigin + ((time - realOrigin) * factor) +(realOrigin-game_start_realdate)*factor);
}
function pad2(num) {
return ("0"+num).substr(-2);
}
function format(time) {
var month=new Array();
month[0]="Jan";
month[1]="Feb";
month[2]="Mar";
month[3]="Apr";
month[4]="May";
month[5]="Jun";
month[6]="Jul";
month[7]="Aug";
month[8]="Sep";
month[9]="Oct";
month[10]="Nov";
month[11]="Dec";
return pad2(time.getDate())
+ "-" + month[time.getMonth()]
+ "-" + time.getFullYear()
+ " " + pad2(time.getHours())
+ ":" + pad2(time.getMinutes())
+ ":" + pad2(time.getSeconds());
}
function startTime() {
var now = new Date();
var display = getVirtual(now);
output.innerText = format(display);
setTimeout(startTime, 1000/factor - (now.getMilliseconds() % (1000/factor)));
}
var output = document.getElementById("txt");
startTime();
</script>
Internet Explorer および Chrome/Firefox で動作するように上記の Javascript を変更する必要があります。 修正したコードを教えてください。