【问题标题】:Add 6 hours to current time and display to page将当前时间增加 6 小时并显示到页面
【发布时间】:2012-10-13 14:22:30
【问题描述】:

所以,我正在尝试向图表添加一些标签,并且我想将它们添加到水平轴上的 6、12、18 和 24 小时。

我想以本地(计算机)时区的“hh:mm”格式(例如 23:10、05:10、11:10 和 17:10)写入这些时间?

有人可以帮我解决这个问题吗?

【问题讨论】:

标签: javascript time


【解决方案1】:

基于How to add 30 minutes to a JavaScript Date object?

var d1 = new Date ();
var d2 = new Date ( d1 );
d2.setHours ( d1.getHours() + 6 );

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date 将展示如何操作 Date 对象。

添加了您的代码并进行了一些修复。 编辑添加第二个文档。写

<script type="text/javascript"> 
var timer = 24; 
var d1 = new Date(); 
var d2 = new Date();
d1.setHours(+d2.getHours()+(timer/4) ); 
d1.setMinutes(new Date().getMinutes()); 
document.write(d1.toTimeString("hh:mm"));
document.write(d1.getHours()+":"+d1.getMinutes());
</script>

【讨论】:

  • 当我使用它时,我得到一个未捕获的异常。这是我的代码:
  • 当我复制你的代码时,最后一个分号后面有一个奇怪的字符。另外,你在哪里定义now?你的意思是Date.now(),因为它返回自纪元以来的毫秒数。
  • 作为最后一个问题,该字符串的输出是:18:45:12 GMT-0400(东部夏令时间)我如何摆脱 18:45 之后的所有内容?
  • document.write(d1.getHours()+":"+d1.getMinutes());
  • 您的代码有错误。它应该是 var d1 = new Date (), d2 = new Date (d1);不能在逗号后定义 var。
【解决方案2】:
var MILLISECS_PER_HOUR = 60 /* min/hour */ * 60 /* sec/min */ * 1000 /* ms/s */;

function sixHoursLater(d) {
  return new Date(+d + 6*MILLISECS_PER_HOUR);
}

日期的数值是每个纪元的毫秒数,因此您只需向其添加毫秒数即可获得更新的数值。

+ 前缀运算符将日期转换为其数值。

【讨论】:

    【解决方案3】:

    试试这个

    var today = new Date();
    alert(today);
    today.setHours(today.getHours()+6);
    alert(today);
    today.setHours(today.getHours()+6);
    alert(today);
    today.setHours(today.getHours()+6);
    alert(today);
    today.setHours(today.getHours()+6);
    alert(today);
    

    【讨论】:

    • 所以...这适用于警报,但不适用于 document.write,为什么会这样?
    • 我没有尝试使用 document.write。
    【解决方案4】:

    这有帮助吗?

    function getDateString(addT){
        var time = new Date();
        time.setHours(time.getHours() + addT );
        return ((time.getHours()<10)?"0":"")+time.getHours() + ':' + time.getMinutes();
    }
    

    然后就用它在图表上弹出你想要的数据?

    即:

    for (i=0;i<=24;i+=6){
        yourbox.innerHTML = '<p>'+getDateString(i)+'</p>'; 
    }
    

    或类似的;

    【讨论】:

      【解决方案5】:

      我喜欢这样做

      new Date(new Date().setHours(new Date().getHours() + 6))
      

      new Date(new Date().setHours(new Date().getHours() + 6)).toString()
      

      【讨论】:

        猜你喜欢
        • 2020-10-11
        • 2019-07-13
        • 2017-03-25
        • 2017-03-28
        • 1970-01-01
        • 2021-03-10
        • 1970-01-01
        • 1970-01-01
        • 2021-01-31
        相关资源
        最近更新 更多