2014-09-17 1 views
1

У меня есть строка:Как разбить строку (дату), разбив ее на разные символы?

September 8, 1951 

Использование JavaScript, что это самый быстрый способ, чтобы разобрать это в:

Я struggeling с: «» в противном случае я мог бы просто разделить на непечатаемых.

var month = .. 

var day = .. 

var year = .. 
+0

http://www.w3schools.com/jsref/jsref_parse.asp – below9k

+0

* разобрать это в: * что? – tmarwen

+0

@ ниже9k Для того, что бы это ни стоило, это не стандартная дата JS (есть только один формат даты, требуемый ECMAScript, ['YYYY-MM-DDTHH: mm: ss.sssZ'] (http: //www.ecma- international.org/ecma-262/5.1/#sec-15.9.1.15)), поэтому использование 'Date' здесь опирается на поведение, специфичное для реализации, которое не гарантирует совместимость между браузерами. – apsillers

ответ

1

Ну, если все, что вам нужно сделать, это перерыв в пробелами или запятыми, и дата всегда будет в таком формате, то вы можете сделать это:

"September 8, 1951".split(/,? /); 

Который будет возвращать массив из 3 строк, формы [месяц, день, год].

/,? / - это регулярное выражение, которое находит пробелы и запятые. Тем не менее, для более надежной даты разбора, вы могли бы пойти со встроенным в Date классе:

new Date("September 8, 1951"); 

И затем использовать его getMonth, getDate и getFullYear методы для анализа информации из.

Примечание: @apsillers отметили, что это не стандартный формат даты. Это верно, но почти все браузеры принимают его, включая nodejs.

+1

Работает после использования метода Date.parse – user3106974

2

Это должно сделать трюк, если дата действительно является строкой, как вы говорите.

var arr = "September 8, 1951".replace(',','').split(' '); 
var month = arr[0]; 
var day = arr[1]; 
var year = arr[2]; 
0

вы можете добавить строку в метод Date, и она будет создавать объект Date

var d=new Date("September 8, 1951");// Mon Sep 08 2014 00:00:00 GMT... 
var month = new Array(); 
month[0] = "January"; 
month[1] = "February"; 
month[2] = "March"; 
month[3] = "April"; 
month[4] = "May"; 
month[5] = "June"; 
month[6] = "July"; 
month[7] = "August"; 
month[8] = "September"; 
month[9] = "October"; 
month[10] = "November"; 
month[11] = "December"; 
var currentMonth = month[d.getMonth()] // September 
var date = d.getDate() //8 
var year = d.getFullYear() // 1951