2014-02-20 9 views
3

Мне нужно преобразовать дату с жесткой кодировкой в ​​стандартный формат GMT. Как я могу это сделать? Дата, которую я имею, имеет следующий формат: var myDate = 'dd | mm | yyyy'; В описании нет описания времени или дня. Просто строка 'dd | mm | yyyy'. Есть ли способ конвертировать его в GMT?Как преобразовать дату жесткого кодирования в стандартный формат GMT

Заранее спасибо.

+0

Вы можете взглянуть на этот вопрос для вдохновения: http://stackoverflow.com/q/7151543/1669279 – Tibos

ответ

1

соответствия Использование регулярных выражений для извлечения данных вам необходимо:

var myDate = "21|01|2014"; 
var data = myDate.match(/(\d{2})\|(\d{2})\|(\d{4})/); 
var date = new Date(data[3], data[2] - 1, data[1]); 

Обратите внимание, что месяц 0-проиндексированы, так январь = 0

Подробнее о регулярных выражениях: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

+1

или просто использовать данные = myDate.split ('|'), который намного быстрее – Alex

2
a = '22/02/2014'.split('/') 
d = new Date(a[2],parseInt(a[1], 10) - 1,a[0]) 
//Sat Feb 22 2014 00:00:00 GMT+0530 (India Standard Time) 

Теперь у вас есть объект javascript в d

utc = d.getUTCDate() + "/" + (d.getUTCMonth() + 1) + "/" + d.getUTCFullYear(); 
//"21/2/2014" for an accurate conversion to UTC time of day is a must. 

Если вы находитесь в Индии, объект Javascript Date будет иметь timeZoneOffset330. Таким образом, невозможно сохранить объект javascript Date с часовым поясом GMT, если ваше системное время не равно GMT.

Так что, если вы хотите Date объект для расчета, вы можете создать с localTimezone и просто предположим, что GMT

pseudoGMT = new Date(Date.parse(d) + d.getTimezoneOffset() * 60 * 1000); 
//Fri Feb 21 2014 18:30:00 GMT+0530 (India Standard Time) 

Если вы можете объяснить ваше требование высокого уровня, мы могли бы быть в состоянии помочь с некоторыми перемежаются решения.

+0

Спасибо за вашу помощь , Но могу ли я получить стандартный объект даты, на который я могу применить различные методы даты, доступные в javascript? – Chiranjit

+0

@ Чиранжит, что сложно. Если вы создадите объект Date, у него будет свой локальный часовой поясOffset, вы не сможете сохранить объект Date с поправкой GMT, если вы там не находитесь. При этом я обновляюсь с помощью решения psuedo. – sabithpocker

+0

Да, ваше решение сработало. Большое вам спасибо. – Chiranjit

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