【问题标题】:Is it possible to transform a js string into a date to upload it to a SQL database?是否可以将 js 字符串转换为日期以将其上传到 SQL 数据库?
【发布时间】:2020-12-10 00:22:47
【问题描述】:

所以我正在开发一个机器人,我试图让它上传两个日期,但我可以拥有的参数是数字(在字符串中)。所以我有两个字符串,例如“08222020”和“10282022”,我需要将它们转换为日期,以便能够将其插入到我的数据库中。 谢谢。

【问题讨论】:

    标签: javascript mysql node.js discord.js


    【解决方案1】:

    你可以使用:

    new Date(string);
    

    【讨论】:

    • 返回无效日期,因为字符串格式不正确
    • 您好,感谢您的快速回复!它告诉我这是一个无效的日期。我用 var FinishDate = new Date(args[3]); 声明了变量args[3] 等于 08222020
    • 查看 Finn Lyonn 的答案,将日期转换为可解析的日期。
    【解决方案2】:

    先转换字符串

    let d = '08222020';
    d = d.slice(0, 2) + '/' + d.slice(2, 4) + '/' + d.slice(4, 8);
    new Date(d);
    

    【讨论】:

      【解决方案3】:

      正如你描述你的问题。

      是的,可以做到。

      使用new Date()

      例如:

      new Date(Number('08222020')) // to convert into date
      

      使用new Date(08222020).getDay() 获取日、月、年等。

      【讨论】:

      • 返回 1970 年 1 月 1 日星期四。不太准确
      • furthur use new Date(08222020).getDay() //代表日期 new Date(08222020).getMonth() //代表月份和 new Date(08222020).getYear() //代表年份
      【解决方案4】:

      将字符串转换为对象以具有更多的“可定制性”。您可以拥有自己的日期格式。由于它是一个对象,因此您可以添加、删除或操作任何属性。

      function convertToDate(date) {
          
      var arr = date.match(/.{2,2}/g);
      let obj = {};
        
      for(var i = 0; i <= arr.length; i++) {
          if(i == 0) {
              obj.date = arr[i]
          } 
          if(i == 1) {
              obj.month = arr[i]
          } 
          if(i == 3) {
              obj.year = "20" + arr[i] //I supp
          } 
          
      }
      return JSON.stringify(obj)
      }
          
      var b = convertToDate("20062045")
      console.log(b)
      

      【讨论】:

        【解决方案5】:

        您好 Tomas,欢迎来到 SO。

        var date =  '08222020';
        date = Number.parseInt(date);
        const d = new Date(date);
        
        var year  = d.getUTCFullYear();
        var month = d.getUTCMonth() + 1;
        var day   = d.getUTCDate();
        
        //the right format for mysql
        month = month < 10 ? '0' + month : month;
        day   = day < 10 ? '0' + day : day;
        date  = year + '-' + month + '-' + day;
        
        console.log(year);
        console.log(month);
        console.log(day);
        console.log(date);
        
        //output
        1970
        "01"
        "01"
        "1970-01-01"
        

        【讨论】:

        • 托马斯没问题
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-19
        • 1970-01-01
        相关资源
        最近更新 更多