在Javascript中格式化日期,获取未定义的NaN

时间:2015-05-26 19:17:54

标签: javascript jquery date

问题

我试图将日期格式从26/05/2015 9:14:46 AM的格式设置为5月26日。

我已设法在当天获得正确的格式,这是一个很好的第一步。但是,在这种情况下,我试图格式化前一天的日期,即。关于河流水平var previousDate = result[1].Date;

的最新API更新时间

我已尝试var today = new Date(result[1].Date)控制台注销22/05/2015 9:31:19 AM并返回" undefined Nan"

scripts.js中

$.ajax({
    url: 'http://opengov.brandon.ca/OpenDataService/default.aspx?format=jsonp&dataset=riverlevel&columns=Date&callback=?',
    type: 'GET',
    dataType: 'jsonp',
    success: function(result) {

      // Dates
      var currentDate = result[0].Date;
      var previousDate = result[1].Date;
      console.log(currentDate, previousDate);

      // Change date from DD/MM/YYYY to January 18
      // Create a new variable with full month names
      var monthNames = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

      var today = new Date();
      var dd = today.getDate();
      var mm = today.getMonth();

      // Puts everything above into a string
      var fixedDate = monthNames[mm] + ' ' + dd;
      $('.date').html(fixedDate); // This presents the fixed current date

1 个答案:

答案 0 :(得分:1)

正如所指出的那样,日期格式不是作为Date()传递给dateString函数的有效日期格式,因此需要将其更改为有效的格式,例如yyyy-mm-dd

function changeDateFormat(dt) {
    var tdt = dt.split(" ")[0].split("/");
    return tdt[2] + "-" + tdt[1] + "-" + tdt[0];
}

然后你可以使用:

var today = new Date(changeDateFormat(previousDate));

jsfiddle DEMO