2010-05-05 2 views

ответ

2

Вы можете попробовать Datejs http://www.datejs.com/ Это не требует большого количества кодирования с вашей стороны, но для этого потребуется включить этот скрипт в ваш html.

+0

Woo! Хотелось бы, чтобы он не умер, с jQuery невероятно легко работать. –

3

Date.parse почти получает то, что вы хотите. Он задыхается на am/pm части, но с некоторыми хакерство вы можете заставить его работать:

var str = 'Sun Apr 25, 2010 3:30pm', 
    timestamp; 

timestamp = Date.parse(str.replace(/[ap]m$/i, '')); 

if(str.match(/pm$/i) >= 0) { 
    timestamp += 12 * 60 * 60 * 1000; 
} 

Minicode выглядит следующим образом:

var s = 'Sun Apr 25, 2010 3:30pm'; 

Date.parse(s.slice(0,-2))+432E5*/pm$/.test(s); 
2

Результат вашего подхода не гарантируется любой спецификации ,

ECMAScript Edition 3 является уместным и не указывает какие-либо форматы, которые может обрабатывать Date.parse. Кроме того, в спецификации указано, что когда Date.parse предоставляется значение, которое не может быть получено ни Date.prototype.toString, ни Date.prototype.toLocaleString, результат зависит от реализации.

... значение производства Date.parse зависит от конкретной реализации, когда любое значение строки, которые не могут быть произведены в этой реализации методом toString или toUTCString.

Не ожидайте последовательных результатов от Date.parse при передаче в вашем формате даты, специфичном для данного региона.

Формат ISO-8601 может использоваться, и значение может быть проанализировано вашей программой. См. Также: Date constructor returns NaN in IE, but works in Firefox and Chrome

+0

Хмм, я этого не знал. Я как-то доверял Firefox слепо на этом. XD – strager

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