【问题标题】:How can I add one hour to a datetime-local with javascript [duplicate]如何使用javascript向本地日期时间添加一小时[重复]
【发布时间】:2020-07-21 16:10:02
【问题描述】:

我的 HTML 代码中有这个输入 <input type="datetime-local" id="myTime" />。我正在使用 javascript 来获取此输入 var myTime = document.getElementById("myTime").value; 的值,但我需要在该值上增加一小时并将其保存在另一个变量中。日期时间的格式为“yyyy-mm-dd HH:MM:SS”。

我知道这看起来很容易,但我尝试了很多方法,但我就是无法做到。我将不胜感激。

谢谢!

【问题讨论】:

  • 您实际上是在问 3 个问题:如何将时间戳解析为日期,如何添加小时,然后如何格式化字符串以保存在其他地方。因此有 3 个重复项。每个主题都有很多问题和答案。

标签: javascript html datetime datetime-format


【解决方案1】:

d = new Date('2020-04-09 10:10:00'); // Converted to UTC Time Zone
console.log(d);
d.setHours(d.getHours() + 1);
console.log(d);

d1 = new Date('2020-04-09 10:10:00'+'+0500'); // Desired Time Zone added.
console.log(d1);
d1.setHours(d1.getHours() + 1);
console.log(d1);

console.log(d.toLocaleString("en-US", {timeZone: "Australia/Brisbane"}), d.toLocaleString("en-US", {timeZone: "Asia/Shanghai"}), d.toLocaleString("en-US", {timeZone: "Asia/Karachi"})) // Displayed as Time Zone's Date settings.

console.log(d1.toLocaleString("en-US", {timeZone: "Australia/Brisbane"}), d1.toLocaleString("en-US", {timeZone: "Asia/Shanghai"}), d1.toLocaleString("en-US", {timeZone: "Asia/Karachi"})) // Displayed as Time Zone's Date settings.

【讨论】:

    【解决方案2】:

    您可以从myTime 控件中获取值,然后将其转换为新的Date 对象,然后简单地添加1 小时。

    (点击演示中的按钮获取更新日期)

    var myTime = document.getElementById("myTime");
    myTime.value = new Date().toISOString().slice(0,16);
    
    function getDatetime() {
      var str = myTime.value;    
      var d = new Date(str);
      console.log('Before:\t', d.toLocaleString())
      
      // Add 1 hour to datetime
      d.setHours(d.getHours() + 1);
      
      console.log('After:\t', d.toLocaleString())
    }
    <input type="datetime-local" id="myTime" />
    <button onclick="getDatetime()">Click me</button>

    【讨论】:

      【解决方案3】:

      你可以这样做,试试这个

      $( document ).ready(function() {
      
      DateObj = Date.parse("10/20/2017 16:00");
      
      // vale you get $("#myTime").val(value);
      
      var date = new Date(DateObj+3600000);
      
          console.log(date.toLocaleString('en-US',{ hour12: false }));
      });
      

      【讨论】:

        【解决方案4】:
           for `<input type="datetime-local" id="myTime" />` input field in html put below code in you document ready function or on Change function to get one hour ahead of input time.                                                                  
        
        var today = new Date(document.getElementById("myTime").value);
        today.setHours(today.getHours() + 1);
        console.log(today)
        

        【讨论】:

        • 请在您的答案中添加一些解释,以便其他人可以从中学习
        • @NicoHaase 是的,我加了一点。如果您觉得这很有用,请点赞。谢谢
        猜你喜欢
        • 2012-11-25
        • 2017-10-28
        • 2019-01-03
        • 1970-01-01
        • 2019-10-30
        • 2016-09-12
        • 1970-01-01
        • 2011-11-29
        • 1970-01-01
        相关资源
        最近更新 更多