重新格式化Javascript日期对象

时间:2016-01-07 17:45:25

标签: javascript date

我有一个日期对象,我想重新格式化为不同的日期样式,但我很难这样做。我已尝试.format()并使用moment,但无法使其发挥作用(.format()只会引发start.format("YYYY/DDD") is not a function错误并moment似乎只返回Unix时间戳,无论我做什么。我一直得到Invalid Date。这是一个fiddle,其中包含我的代码(当你将鼠标悬停在一段时间内时会显示日期)。< / p>

根据要求,这是实际代码:

google.setOnLoadCallback(drawChart);
function drawChart() {
  var container = document.getElementById('timeline');
  var chart = new google.visualization.Timeline(container);
  var dataTable = new google.visualization.DataTable();

  dataTable.addColumn({ type: 'string', id: 'RowLabel' });
  dataTable.addColumn({ type: 'string', id: 'BlockLabel' });
  dataTable.addColumn({ type: 'date', id: 'Start' });
  dataTable.addColumn({ type: 'date', id: 'End' });
  dataTable.addRows([
  ["SAT 2B", "Task 1", new Date(2015, 01, 01), new Date(2015, 02, 02)],
  ["SAT 2B", "Task 2", new Date(2015, 01, 05), new Date(2015, 01, 08)],
  ["SAT 2B", "Task 1", new Date("2015-03-10 05:10:39.010000"), new Date("2015-03-15 05:10:39.010000")],
  ["SAT 2C", "Task 1", new Date("2015-04-10 05:10:39.010000"), new Date("2015-04-15 05:10:39.010000")]
  ]);


  var options = {
    timeline: { colorByRowLabel: true }
  };


  chart.draw(dataTable, options);

  google.visualization.events.addListener(chart, 'onmouseover', function(e) {
    setTooltipContent(dataTable,e.row);
  });
}


function setTooltipContent(dataTable,row) {

  if (row != null) {
    var sat = dataTable.getValue(row,0);
    var taskID = dataTable.getValue(row,1);
    //var start = dataTable.getValue(row,2);
    var start = dataTable.getValue(row,2).toDateString();
    var startFormatted = new Date(start, "dd.mm.yyyy hh:MM:ss")
    //start.format("dddd, MMMM Do YYYY, h:mm:ss a");
    //start.format('yyyy/DDD-HH:mm:ss');
    var end = dataTable.getValue(row,3);

    var content = '<div class="custom-tooltip" ><h1>' + sat + ','+ taskID +'</h1><div>' +'Start:'+startFormatted +', End: '+ end+'</div></div>'; //generate tooltip content
    var tooltip = document.getElementsByClassName("google-visualization-tooltip")[0];
    tooltip.innerHTML = content;
  }
}

据我所知,我想重新格式化的是一个约会对象,所以我不确定出了什么问题。我希望它以YYYY/DDD HH:mm:ss格式显示(其中DDD是一年中的某一天)。

2 个答案:

答案 0 :(得分:0)

我明白了。我需要使用这样的日期:

var start = dataTable.getValue(row,2).toDateString();
var startFormatted = moment(start).format("YYYY/DDD HH:mm:ss")

答案 1 :(得分:-1)