我有一个日期对象,我想重新格式化为不同的日期样式,但我很难这样做。我已尝试.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
是一年中的某一天)。
答案 0 :(得分:0)
我明白了。我需要使用这样的日期:
var start = dataTable.getValue(row,2).toDateString();
var startFormatted = moment(start).format("YYYY/DDD HH:mm:ss")
答案 1 :(得分:-1)