【问题标题】:format a date coming back as JSON将返回的日期格式化为 JSON
【发布时间】:2014-01-27 19:10:39
【问题描述】:

我有一个返回为 \/Date(1390982400000)\/ 的 JSON 日期,我使用以下代码将其转换为日期,但我不确定如何将其格式化为 "mm-dd-yyyy"。现在日期显示为"Wed Jan 29 2014 00:00:00 GMT-0800(太平洋标准时间)”但我想要它"mm-dd-yyyy"

我确定这很简单,但我什么都做不了......

代码:

var startDate = new Date(parseInt(result.d[0].StartDate.substr(6))); // formats the date
$("#startDate").val(startDate);

【问题讨论】:

标签: jquery json date


【解决方案1】:

类似这样的:

function mmddyyyy(date) {         
  var yyyy = date.getFullYear().toString();                                    
  var mm = (date.getMonth()+1).toString(); // getMonth() is zero-based         
  var dd  = date.getDate().toString();             

  return (mm[1]?mm:"0"+mm[0]) + '-' + (dd[1]?dd:"0"+dd[0]) + '-' + yyyy ;
};  

d = new Date(1390982400000);
console.log(mmddyyyy(d));

Reference

【讨论】:

  • 答案很准确,但您能否对(mm[1]?mm:"0"+mm[0]) 表达式有所了解?为什么我们需要它..?我自己也想不通..
  • 当然,如果月份或日期仅包含一位数字,则用零填充。这有帮助还是你被语法抛出?
  • 我明白了。我在很大程度上被语法所迷惑。当我执行 alert(mm[1]) 或 alert(dd[1]) 时,它返回 undefined 和 9 resp。是 mm 和 dd 数组吗?我认为它只是一个存储月份和日期的变量。
  • 这使用条件运算符condition ? expr1 : expr2。 mm 是由一个或两个字符组成的字符串。条件运算符检查是否存在 mm[1](第二个字符)。如果它在那里,则返回 mm。如果不存在,则 ? 右侧的表达式被评估并返回“0”+ mm[0](mm[0] 是第一个字符)。这可能会有所帮助:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
【解决方案2】:

我喜欢Moment.js

例子:

moment(startDate).format("MM-DD-YYYY")

【讨论】:

    【解决方案3】:

    这行得通:

    var d = new Date(parseInt(result.d[0].StartDate.substr(6))); // formats the date
    var curr_day = d.getDate();
    var curr_month = d.getMonth() + 1; //Months are zero based
    var curr_year = d.getFullYear();
    $("#startDate").val(curr_month + "-" + curr_day + "-" + curr_year);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 2012-05-09
      • 1970-01-01
      相关资源
      最近更新 更多