Quanto JavaScript novo Date () e Date.parse ()

Este é o meu código:

var exampleDate='23-12-2010 23:12:00'; var date=new Date(exampleDate);//returns invalid Date var date1=Date.parse(exampleDate);//returns NAN 

Eu quero converter string acima em data. Então eu escrevi um código como você viu acima.

Este código está funcionando bem no IE e Opera , mas a variável de date está me retornando uma data inválida e date1 está retornando NAN no mozilla Firefox , o que devo fazer?

O formato acima é suportado apenas no IE e no Chrome.

então tente com outros formatos. A seguir estão alguns formatos e há suporte a navegadores.

  

A string no seu exemplo não está em nenhum dos formatos padrão reconhecidos pelos navegadores. A especificação do ECMAScript requer que os navegadores consigam analisar apenas um formato padrão:

O formato é o seguinte: YYYY-MM-DDTHH:mm:ss.sssZ

Este formato inclui formulários apenas de data:

YYYY

YYYY-MM

YYYY-MM-DD

Também inclui formulários somente de hora com um deslocamento opcional de fuso horário anexado:

THH:mm

THH:mm:ss

THH:mm:ss.sss

Também estão incluídos os “date-times”, que podem ser qualquer combinação dos itens acima.

Se a sequência não estiver de acordo com esse formato, a function poderá retornar a heurísticas específicas da implementação ou a formatos de datas específicos da implementação. Strings irreconhecíveis ou datas contendo valores de elementos ilegais no formato String, fará com que Date.parse retorne NaN.

Então, no seu exemplo, usar 2010-12-23T23:12:00 é a única string garantida para funcionar. Na prática, a maioria dos navegadores também permite datas no formato DD Month YYYY ou Month DD, YYYY , portanto, sequências como 23 Dec 2010 e Dec 23, 2010 também podem funcionar.

Você poderia analisá-lo manualmente com uma expressão regular e, em seguida, chamar o construtor de data com os elementos de data, como:

 var parseDate = function(s) { var re = /^(\d\d)-(\d\d)-(\d{4}) (\d\d):(\d\d):(\d\d)$/; var m = re.exec(s); return m ? new Date(m[3], m[2]-1, m[1], m[4], m[5], m[6]) : null; }; var dateStr = '23-12-2010 23:12:00'; parseDate(dateStr).toString(); //=> Thu Dec 23 2010 23:12:00 GMT-0800 

O JavaScript deve suportar a conversão pelo menos a partir das seguintes datasStrings:

 * yyyy/MM/dd * MM/dd/yyyy * MMMM dd, yyyy * MMM dd, yyyy 

Experimente com:

  var exampleDate='12/23/2010 23:12:00'; var date = new Date(exampleDate); 

Use datejs e este código:

 var exampleDate='23-12-2010 23:12:00'; var myDate = Date.parseExact(exampleDate, 'dd-MM-yyyy hh:mm:ss'); 

myDate deve ser um object de Date corretamente construído.

Apenas use neste formato:

 var exampleDate='2010-12-23 23:12:00';