【问题标题】:How can I format a json date in dd/mm/yy format in javascript?如何在javascript中以dd/mm/yy格式格式化json日期?
【发布时间】:2012-04-28 12:04:51
【问题描述】:

我的回复中有一个像\/Date(1334514600000)\/ 这样的json 日期,当我用javascript 转换它时,我得到了这个日期Tue Apr 17 2012 11:37:10 GMT+0530 (India Standard Time), 但我需要像17/04/2012 这样的日期格式,但我每次都失败。谁能告诉我怎么解决?

【问题讨论】:

  • 堆栈溢出问题已经有很多答案了。
  • 我检查了大部分答案,但没有一个对我有用:-(

标签: javascript json datetime datetime-format


【解决方案1】:

我认为其他发布的答案不太正确,您已经接受了一个为您工作的答案,所以我不会编辑它。

这是您接受的答案的更新版本。

var dateString = "\/Date(1334514600000)\/".substr(6);
var currentTime = new Date(parseInt(dateString ));
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var year = currentTime.getFullYear();
var date = day + "/" + month + "/" + year;
alert(date);

它使用来自 answer 的技术从 JSON 日期中提取纪元。

【讨论】:

  • 您也可以使用var date = new Date(+dateString.match(/\d+/)[0]); 将时间转换为日期。不过要小心,因为日期对象将位于执行代码的系统的时区中。
  • 感谢您的提问和回复!
  • 这给了我 2/1/2019。我如何获得 2019 年 2 月 1 日?
【解决方案2】:

我发现第 1 行的答案非常有帮助,但是我被困在输入类型 =“日期”的格式上,因为只返回一个 10 以下小数的字符串,我能够修改以处理输入类型 =“日期”,我基本上将row1中的代码改编为链接http://venkatbaggu.com/convert-json-date-to-date-format-in-jquery/中的代码

我可以通过 jquery .val 将日期添加到输入中

var dateString = "\/Date(1334514600000)\/".substr(6);
var currentTime = new Date(parseInt(dateString));
var month = ("0" + (currentTime.getMonth() + 1)).slice(-2);
var day = ("0" + currentTime.getDate()).slice(-2);
var year = currentTime.getFullYear();
var date = year + '-' + month + '-' + day;
alert(date);

【讨论】:

    【解决方案3】:
    var currentTime = new Date()
    var month = currentTime.getMonth() + 1
    var day = currentTime.getDate()
    var year = currentTime.getFullYear()
    var date = day + "/" + month + "/" + year
    alert(date);
    

    【讨论】:

    • 我正在尝试这个,但它不起作用 var currentTime = new Date($("input" ).val()); var month = currentTime.getMonth() + 1 var day = currentTime.getDate() var year = currentTime.getFullYear() var date = day + "/" + month + "/" + year alert(date);
    【解决方案4】:

    这是对你问题的回答...

    使用您的时间戳构建日期对象

    var currentTime = new Date(1334514600000)
    var month = currentTime.getMonth() + 1
    var day = currentTime.getDate()
    var year = currentTime.getFullYear()
    var date = day + "/" + month + "/" + year
    alert(date);​
    

    有效

    http://jsfiddle.net/ChgUa/

    【讨论】:

    • 您缺少将\/Date(1334514600000)\/ 转换为new Date(1334514600000) 的步骤
    【解决方案5】:
    //parse JSON formatted date to javascript date object
    var bdate = new Date(parseInt(emp.Birthdate.substr(6)));
    
    //format display date (e.g. 04/10/2012)
    var displayDate = $.datepicker.formatDate("mm/dd/yy", bdate);
    

    【讨论】:

      【解决方案6】:

      如果您使用 Angular,最简单的格式化日期的方法是使用管道。 点击here

      //in .ts file
      ngOnInit() {
       this.currentDate = new Date()
      }
      //in html file
      <p>Current date is:</p>{{currentDate | date: 'dd/MM/yyyy'}}
      
      //Output: 22/04/2020
      

      【讨论】:

        【解决方案7】:

        这是您接受的答案的更新版本。 DD/MM/YYYY 格式试试这个..

        var dateString = "/Date(1623781800000+0530)/"+.substr(6);
        var currentTime = new Date(parseInt(dateString));
        var month = currentTime.getMonth() + 1;
        var day = currentTime.getDate();
        var year = currentTime.getFullYear();
         if (month.toString().length == 1) 
           month = "0" + month.toString();
         if (day.toString().length == 1){ 
           day = "0" + currentTime.getDate();}                                       
        var datenew = day + "/" + month + "/" + year;
        

        【讨论】:

          【解决方案8】:
           var Date = new Date(Tue Jun 15 2021 23:52:47 GMT+0800 (Malaysia Time)).toDateString(); console.log(Date);
          

          结果 == 2021 年 6 月 15 日星期二


          【讨论】:

          • 这不能回答 OP 的问题。此外,这在语法上无效,您需要用引号将 Tue Jun 15... 括起来。
          猜你喜欢
          • 1970-01-01
          • 2014-01-03
          • 1970-01-01
          • 2020-02-29
          • 1970-01-01
          • 1970-01-01
          • 2021-12-31
          • 2018-08-03
          • 2012-03-15
          相关资源
          最近更新 更多