2014-06-03 8 views
1

Я ploting диаграммы с помощью Google аннотированных диаграмм https://code.google.com/apis/ajax/playground/?type=visualization#annotated_time_lineИзменения Формат даты

я получаю мои данные через Ajax вызов в формате JSON в массиве, как этот

d[1][0] = 9/30/04, d[2][0] = 12/31/04 

я имею в циклю временной шкалы с помощью этих значений, чтобы добавить к строкам данных

for (m = 1; m < datavalues.length; m++) { 
    data.addRows('DATE', parseFloat(datavalues[m][2]), parseFloat(datavalues[m][3]), parseFloat(datavalues[m][4]), parseFloat(datavalues[m][5])]); 
} 

Но код принимает формат как

[new Date(2008, 1 ,1), 30000, null, null, 40645, null, null] 

Как изменить формат?

ответ

0

Если начать с датой в формате 9/30/04, который, кажется, что-то вроде mm/dd/yy, то все, что вам нужно, чтобы отделить эти значения с split функции

var inputDate = '9/30/04', 
    splitDate = inputDate.split('/'); // => ["9", "30", "04"] 

После этого, вам нужно подготовить год, месяц и день номера

var inputDate = '9/30/04', 
    splitDate = inputDate.split('/'), 
    year = parseInt(splitDate[2]) + (parseInt(splitDate[2]) < 50 ? 2000 : 1900), // careful with this, I don't know what years you are dealing with 
    month = parseInt(splitDate[0]), 
    day = parseInt(splitDate[1]); 

и использовать их в качестве параметров для создания нового объекта Date

var inputDate = '9/30/04', 
    splitDate = inputDate.split('/'), 
    year = parseInt(splitDate[2]) + (parseInt(splitDate[2]) < 50 ? 2000 : 1900), 
    month = parseInt(splitDate[0]), 
    day = parseInt(splitDate[1]), 
    date = new Date(year, month, day); // => Date {Sat Oct 30 2004 00:00:00 GMT+0300 (FLE Standard Time)} 

Вам просто нужно убедиться, что формат остается тем же самым mm/dd/yy. Я бы сделал какую-то функцию преобразования даты, которая принимает дату ввода в определенном формате и возвращает объект даты.

Используйте этот объект даты в настройках диаграммы.

Смежные вопросы