【问题标题】:Get current date and time in javascript of format: 2015-03-01 03:09:03以javascript格式获取当前日期和时间:2015-03-01 03:09:03
【发布时间】:2015-06-01 05:02:19
【问题描述】:

我想像这样在 javascript 中获取当前日期和时间:2015-03-01 03:09:03

我怎样才能实现这种格式? (小于 9 时在数字前显示零

实际上,我正在将日期和时间与 NODE.JS 中的 mysql 日期和时间与 mysql 插件进行比较。所以我的 javascript 日期和时间格式必须与 mysql 默认日期和时间格式相同,即:2015-03-01 03:09:03

目前我正在使用:

 var currentdate     = new Date(); 
 var datetime        = currentdate.getFullYear() + "-" +
                       (currentdate.getMonth()+1)  + "-"+
                       currentdate.getDate() + " "  + 
                       currentdate.getHours() + ":"   +
                       currentdate.getMinutes() + ":" + 
                       currentdate.getSeconds();

NODE.JS 中的 Mysql 查询:

var paramUpdate = {}
stateObject.connection.query("UPDATE timersDb SET notificationFlag = '1' 
                              WHERE requestTime < '"+datetime+"' AND
                              notificationFlag = '0'", 
                              paramUpdate , function(err, rows){
                                            if(err){
                                                throw err;
                                            } 
                                            else{ } 
                                        });

但是这段代码生成的日期和时间是这样的:2015-3-1 3:9:3 根据 mysql 日期和时间标准,这是无效的。

谁能指导我在javascript中实现当前日期和时间的最佳解决方案是这样的:2015-03-01 03:09:03

【问题讨论】:

    标签: javascript mysql node.js date


    【解决方案1】:

    您需要创建一个函数,如果值小于 10,它将添加前导 0。试试这个:

    var currentdate     = new Date(); 
    var datetime        = addZero(currentdate.getFullYear()) + "-" +
                          addZero(currentdate.getMonth()+1)  + "-"+
                          addZero(currentdate.getDate()) + " "  + 
                          addZero(currentdate.getHours()) + ":"   +
                          addZero(currentdate.getMinutes()) + ":" + 
                          addZero(currentdate.getSeconds());
    
    function addZero(str)
    {
        return str < 10 ? ('0' + str) : str;
    }
    

    【讨论】:

      【解决方案2】:

      如果小于 10,您只需添加零。

       var currentdate = new Date();
      var appendZero = function (value) {
          if (parseint(value) > 9) {
              return value;
          } else {
              return "0" + value.toString();
          }
      }
      var datetime = currentdate.getFullYear() + "-" +
          appendZero(currentdate.getMonth() + 1) + "-" +
          appendZero(currentdate.getDate()) + " " +
          appendZero(currentdate.getHours()) + ":" +
          appendZero(currentdate.getMinutes()) + ":" +
          appendZerocurrentdate.getSeconds());
      

      【讨论】:

      • 嗯实际上还有一件事。 mysql date 和 javascript date 有几个我们的区别。为什么会这样?
      • 那是因为时区问题..您的服务器和客户端将位于不同的时区.. new Date() 给出本地时区的日期
      【解决方案3】:

      试试这个:

       var currentdate     = new Date(); 
       var datetime        = currentdate.getFullYear() + "-" +
                             ('0' + (currentdate.getMonth()+1)).slice(-2)  + "-"+
                             ('0' + currentdate.getDate()).slice(-2) + " "  + 
                             ('0' + currentdate.getHours()).slice(-2) + ":"   +
                             ('0' + currentdate.getMinutes()).slice(-2) + ":" + 
                             ('0' + currentdate.getSeconds()).slice(-2);
      
      > datetime
      #"2015-05-31 22:15:59"
      

      【讨论】:

        【解决方案4】:

        你可以使用momentjs

        moment(currentDate).format('YYYY-MM-DD hh:mm:ss');
        

        更好的解决方案是使用查询构建器,例如 knexjs,它会自动将您的数据序列化为 SQL 查询,这样您就不必担心所有的怪癖和细节(并且还可以保护您免受 SQL 注入) )

        【讨论】:

          【解决方案5】:

          使用toISOString()怎么样?浏览器兼容性表显示了广泛的支持。

          所以你的表达将是一个单行:

          new Date().toISOString().slice(0, 19).replace('T', ' ');
          

          生成的输出:

          “2017-06-29 17:45:52”

          【讨论】:

            猜你喜欢
            • 2021-02-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-08-24
            相关资源
            最近更新 更多