Я работаю с титаном, который представляет собой основу для разработки мобильных приложений на основе javascript.
У меня есть массив, который содержит среди своих ячеек строку, представляющую строку «дата и время» в формате «ГГГГ-ММ-ДД ЧЧ: мм: сс» (NightsArray [i] [3] возвращает: 2014-02-20 23:00:00), как показано в консоли позже.
на этой странице показано несколько конструкторов для Объект Date () с несколькими параметрами:
var today = new Date();
var birthday = new Date("December 17, 1995 03:24:00");
var birthday = new Date("1995-12-17T03:24:00");
var birthday = new Date(1995,11,17);
var birthday = new Date(1995,11,17,3,24,0);
Итак, как вы можете видеть, ближайший конструктор для строки моего массива - 3-й:
var birthday = new Date("1995-12-17T03:24:00");
В следующем коде я попытаюсь отформатировать свою строку в форме «YYYY-MM-DDThh: mm: ss» с помощью некоторых методов substr () и передать полученную строку (после конкатенации) конструктору Date (), но я получил «Неверная дата», как показано в журнале консоли.
Ti.API.error("+*///+++NIGHT DATE & TIME(string) : "+NightsArray[i][3]);
Ti.API.error("+*///+++NIGHT DATE & TIME(string)substr(0,10) : "+NightsArray[i][3].substr(0,10));
Ti.API.error("+*///+++NIGHT DATE & TIME(string)substr(11,10) : "+NightsArray[i][3].substr(11,10));
Ti.API.error("+*///+++"+NightsArray[i][3].substr(0,10)+"T"+NightsArray[i][3].substr(11,10));
var nightDateNTime = new Date(NightsArray[i][3].substr(0,10)+"T"+NightsArray[i][3].substr(11,10));
Ti.API.error("+*///+++ CURRENT DATE nightDateNTime(Date): "+nightDateNTime);
var d = new Date();
Ti.API.error("+*///+++ CURRENT DATE : "+d);
Это журнал консоли:
[ERROR] :+*///+++NIGHT DATE & TIME(string) : 2014-02-19 23:00:00
[ERROR] : +*///+++NIGHT DATE & TIME(string)substr(0,10) : 2014-02-19
[ERROR] : +*///+++NIGHT DATE & TIME(string)substr(11,10) : 23:00:00
[ERROR] : +*///+++2014-02-19T23:00:00
[ERROR] : +*///+++ CURRENT DATE nightDateNTime(Date): Invalid Date
[ERROR] : +*///+++ CURRENT DATE : Mon Feb 17 2014 11:09:09 GMT+0100 (CET)
Мне нужно сравнить эту строку с текущей датой в конце, но теперь мне сначала нужно преобразовать эту строку в дату, но мне интересно, почему это не работает ..
1 ответ
Вы пытаетесь разобрать дату и время в формате UTC. В Titanium, когда вы пытаетесь разобрать дату, он вернет неверную дату. Поэтому вам нужно преобразовать его в строку datetime. Вы можете разделить строку на разделительные символы -, и: и передать каждый из результирующих элементов массива конструктору Date.
Попробуйте следующее
function FormatDate(date)
{
var arr = date.split(/[- :T]/), // from your example var date = "2012-11-14T06:57:36+0000";
date = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], 00);
newDate = date.toString("MMMM");
//.. do further stuff here
}
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.