2011-01-13 2 views

ответ

7
var dateString = '13011948'; 

Длина текста фиксируется и всегда в то же должность. Затем вы можете просто использовать substr, чтобы разрезать их на части и использовать parseInt, чтобы преобразовать их в число.

var month = parseInt(dateString.substr(0, 2), 10), 
     day = parseInt(dateString.substr(2, 2), 10), 
    hour = parseInt(dateString.substr(4, 2), 10), 
    minute = parseInt(dateString.substr(6, 2), 10); 

Или вместо этого поместите его в объект с одной датой.

var date = new Date(); 
date.setMonth (parseInt(dateString.substr(0, 2), 10) - 1); 
date.setDate (parseInt(dateString.substr(2, 2), 10)); 
date.setHours (parseInt(dateString.substr(4, 2), 10)); 
date.setMinutes (parseInt(dateString.substr(6, 2), 10)); 
4

EDIT

Библиотека moment.js нашел here выглядит удивительным для этого!

END EDIT

это должно помочь ... working with Dates

+0

Вау, приподнятое все еще работает! Раньше я ездил туда бесплатно шаблоны сайтов до начала тысячелетия (и задолго до того, как я был веб-разработчиком)! ура для прохода вниз по полосе памяти :-) – WickyNilliams

+0

lol Я никогда не слышал об этом. когда я искал. Похож на хороший ресурс для этого, хотя ... – stephen776

2

Есть несколько методов в JavaScript Object Date, который получил бы вам эти параметры

var curdate = new Date(); 
var mday = curdate.getDate();  //returns day of month 
var month = curdate.getMonth();  //returns month 0-11 
var hours = curdate.getHours();  //returns hours 0-23 
var minutes = curdate.getMinutes(); //returns minutes 0-59 

Проверить this

Если у вас нет объекта даты, вы можете проанализировать его с помощью

var curdate = Date.parse("Jan 1, 2010"); 

Чтобы разобрать дату вашего конкретного формата см this

+0

Вы уверены, что второй пример верен? Date.parseDate(), похоже, не существует для меня и функция Date.parse(), которая принимает один аргумент в формате IETF. –

+0

@Mark Biek - Да, спасибо Марк, вы правы. – niksvp

3

Если вы гарантировано, что он всегда будет в формате ММДДччмм, можно разобрать его с помощью простого регулярного выражения.

var d = "01121201"; 
var m = /([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/.exec(d); 

console.log(m); 

, который будет выводить

["01121201", "01", "12", "12", "01"] 

Но используя фактические функции даты лучше, если это возможно.

Вы могли бы сделать что-то вроде следующего, чтобы принять результат матча регулярного выражения выше, чтобы создать настоящий объект Javascript Дата:

//The year will default to the current year 
var realDate = new Date(); 
realDate.setMonth(m[1]); 
realDate.setDate(m[2]); 
realDate.setHours(m[3]); 
realDate.setMinutes(m[4]); 
+7

У вас есть внушительная борода! – Anders

+0

Вы должны увидеть его сейчас! Это короткая картинка :) –

+0

Я согласен, ваша борода пугает ..... – Liam

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