【问题标题】:javascript : Error for increment secondsjavascript:增量秒错误
【发布时间】:2017-06-04 08:23:06
【问题描述】:
<html>
<head>
<script>
function startTime() {
    var st = "January 19, 2017 18:33:31" 
    var today = new Date(st);
    var montharray = new Array("Jan","Feb","Mar","Abr","May","Jun","Jul","Ogu","Sep","Oct","Nov","Des");
    var h = today.getHours();
    var ampm = h >= 12 ? 'PM' : 'AM';
    h = h % 12;
    h = h ? h : 12;
    var m = today.getMinutes();
    var s = today.getSeconds();
    h = checkTime(h);
    m = checkTime(m);
    s = checkTime(s);
    document.getElementById('txt').innerHTML =
    checkTime(today.getDate())+" "+montharray[today.getMonth()]+" "+today.getFullYear() + " (" + ampm +" " + h + ":" + m + ":" + s +")"; 
    setTimeout(startTime, 1000);
}

function checkTime(i) {
    if (i < 10) {i = "0" + i};
    return i;
}
</script>
</head>
<body onLoad="startTime();">
    <span id="txt"></span>
</body>
</html>

我想自动增加秒数。 我知道如果我正在使用

var today = new Date();

取而代之的是,

var st = "January 19, 2017 18:33:31" 
        var today = new Date(st);

它将被成​​功执行。但我不想要那个。我需要 根据上面写的代码输出。

谢谢

【问题讨论】:

  • 我没有看到任何增加时间的方法
  • 我需要一个解决方案,否则我无法继续我的项目。“如果有问题,必须有解决方案”的名言之一

标签: javascript date time clock seconds


【解决方案1】:

尝试对 startTime 进行此修改

var st = "January 19, 2017 18:33:31";
function startTime() {
    var today = new Date(st);
    var montharray = new Array("Jan","Feb","Mar","Abr","May","Jun","Jul","Ogu","Sep","Oct","Nov","Des");
    var h = today.getHours();
    var ampm = h >= 12 ? 'PM' : 'AM';
    h = h % 12;
    h = h ? h : 12;
    var m = today.getMinutes();
    var s = today.getSeconds();
    h = checkTime(h);
    m = checkTime(m);
    s = checkTime(s);
    document.getElementById('txt').innerHTML =
    checkTime(today.getDate())+" "+montharray[today.getMonth()]+" "+today.getFullYear() + " (" + ampm +" " + h + ":" + m + ":" + s +")"; 
    today.setSeconds(today.getSeconds() + 1);
    st = today;
    setTimeout(startTime, 1000);
}

示例 - https://jsfiddle.net/1btotz3a/

【讨论】:

  • 你做了一件了不起的事情。但首先我要为你道歉,因为 var st 值来自 html 代码,而且我将函数调用到正文中。所以我需要在for循环中声明值。我认为你很困惑,所以我在&lt;body onLoad="startTime()"&gt; &lt;input type="hidden" id="vars" value="{% now "F j, Y H:i:s" %}"&gt;span id="txt" &gt;&lt;/span&gt;&lt;/body&gt;下面给出了更多细节@这是html页面。我通过var st = document.getElementById('vars').value;获取值的js脚本就是这样我将值设置为 st 变量。现在我认为你已经清除了。
  • 所以我不能在函数之前声明变量st。所以请帮助我。谢谢
  • 把脚本放到文件底部,这样你就可以在函数之外声明 var st (在body标签之后)如果我帮助你,请批准这个答案
  • 当然可以。但是你能给我一个详细的解决方案吗。我编辑了你的答案,但我没有得到解决方案。请帮助我
  • 看更新的例子jsfiddle.net/1btotz3a,你也可以使用getElementById和增加日期
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
相关资源
最近更新 更多