2012-06-01 9 views
1

У меня есть строка, в которой есть дата, и я не смогу ее преобразовать.Формат Дата из строки в javascript

var startDate = "March-09-2010"; 
var convertedStartDate = new Date(startDate); 
var month = convertedStartDate.getMonth() + 1 
var day = convertedStartDate.getDay(); 
var year = convertedStartDate.getFullYear(); 
var shortStartDate = month + "-" + day + "-" + year; 
alert(shortStartDate); 

Я хочу его, чтобы он преобразует март-09-2010 в 09-03-10 (ДД-ММ-ГГ)

Каждый знает, что я делаю неправильно?

ответ

1

Попробуйте это:

var dt=Date.parse(Yourstring); 

formatDate('DD-MM-YY',dt); 

Пожалуйста, проверьте это Date.parse

+0

Функция объекта Date() {[native code]} не имеет метода «Parse» ... thats the error –

+0

@RajatSinghal Извините Отредактированный ответ. – Vinod

+0

1. * Объект 1268089200000 не имеет метода 'tostring' *. 2. после исправления: * аргумент аргумента toString() должен быть от 2 до 36 *. – KooiInc

0

ваша дата строка не в правильном формате. для правильных форматов, пожалуйста, см https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

попробовать это или jsfiddle

var startDate = "March-09-2010"; 
var tmp = startDate.split('-'); 
tmp.splice(1, 0, ','); 
var convertedStartDate = new Date(tmp.join(' ')); 
var month = convertedStartDate.getMonth() + 1 
var day = convertedStartDate.getDate(); 
var year = convertedStartDate.getFullYear(); 
var shortStartDate = ('0' + day).slice(-2) + "-" + ('0' + month).slice(-2) + "-" + year; 
alert(shortStartDate); 
0

Проверьте ваш синтаксис изменил код немного, изменить его в соответствии с ним, то ---

var startDate = "March/09/2010"; 
var convertedStartDate = new Date(startDate); 
var month = convertedStartDate.getMonth() + 1 
var day = convertedStartDate.getDate(); 
var year = convertedStartDate.getFullYear(); 
var shortStartDate = day+ "-" + month+ "-" + year; 
alert(shortStartDate); 
+0

Проблема в startDate не соответствует критериям – swapnesh

0

Использование getDateFromFormat() для конвертировать строку на сегодняшний день в javascript.

Проверить эту ссылку для получения дополнительной помощи: http://www.mattkruse.com/javascript/date/

1
var startDate = "March-09-2010"; 
var convertedStartDate = new Date(startDate.replace(/-/g, "/")); // replace hyphen with slash 
var month = convertedStartDate.getMonth() + 1 
var date = convertedStartDate.getDate(); 
var year = convertedStartDate.getFullYear(); 
var shortStartDate = date + "-" + month + "-" + year; 
alert(shortStartDate); 

демо: http://jsfiddle.net/BjnBW/

+0

не работает. «Март/09/2010» по-прежнему не является допустимой строкой даты. «9 марта 2010» - допустимая строка даты. –

+0

отредактирован .. уточните пожалуйста. – Diode

+0

Это будет работать только для имен английского месяца. – KooiInc

0
var shortStartDate = 
    Globalize.format(Globalize.parseDate(startDate, 'MMMM-dd-yyyy'), 'dd-MM-yy'); 

Используйте некоторую библиотеку, чтобы выполнить преобразование, так как встроенный Date.parse() является реализации- зависимый. В зависимости от системы, какие форматы она принимает.

В приведенном выше коде используется Globalize.js, который может обрабатывать большое количество форматов даты, включая форматы с именами месяцев на разных языках (по умолчанию английский).

0

Вам нужно будет преобразовать «Марш» в число. Один из способов заключается в использовании этого расширения массива, чтобы иметь возможность получить номер месяца от названия месяца:

Array.prototype.enum = function(){ 
    var obj = {}; 
    for (var i=0; i<this.length; (i+=1)) { 
     obj[this[i]] = i; 
    } 
    this.enum = obj; 
    return this; 
}; 

Теперь создадим массив с именами месяц

var months = ('January,February,March,April,May,June,July,'+ 
      'August,September,October,November,December').split(',') 
       .enum(); 

Теперь вы переписать дату:

var startDate = "March-09-2010".split(/\-/), 
    month  = months.enum[startDate[0]]+1; 
startDate  = [startDate[1], 
       month < 10 ? '0'+month : month, 
       startDate[2]].join('-'); 
//=> startDate now is: '09-03-2010' 
Смежные вопросы