mmm, mas como verificar se strDate tem um valor inválido como "30.30.2000"?
Dr. No
2
@ user674887, você pode comparar os valores após a análise. por exemplo, dateParts [1] -1 == date.getMonth ()
Jonathan Fingland
Se você tiver a data TIME assim: "2014-05-20T16: 43: 56.71-06: 00" var partesFecha = solicitud.CreatedDate.split ("T") [0] .split ("-"); var data criada = nova Data (partesFecha [0], (partesFecha [1] - 1), partesFecha [2]); A primeira extração data antes de T e, posteriormente, divida o ano, mês e dia.
RolandoCC de
não acredito que você tem que usar uma divisão para obter o formato de data esperado em javascript
Claudiu Creanga
Alguém mais achou estranho que o artigo de referência do Mozilla sobre o próprio objeto Date diga "Note: parsing of date strings with the Date constructor (and Date.parse, they are equivalent) is strongly discouraged due to browser differences and inconsistencies."?
NanoWizard
51
Se você estiver usando jQuery UI, pode formatar qualquer data com:
<html><body>Your date formated:<span id="date1"></span><br/></body></html>
+1 Não vejo como estando totalmente fora do escopo, JavaScript e JQuery são uma combinação comum.
djna
Uma resposta não deve depender de uma biblioteca que não está marcada ou mencionada no OP. Usar jQuery como uma biblioteca de data é um exagero enorme quando uma função de 3 linhas pode fazer o mesmo trabalho.
RobG
9
Usamos este código para verificar se a string é uma data válida
Na maioria dos casos, o MomentJS é um exagero, já que usar JavaScript puro requer apenas centenas de bytes, enquanto o MomentJS tem 12,4 kb compactado com gzip. Conveniente para desenvolvedores, mas torna o site mais lento. Não vale a pena.
Raptor
3
Tenho sido usado para seguir o código no IE. (Compatível com IE8)
var dString ="2013.2.4";var myDate =newDate( dString.replace(/(\d+)\.(\d+)\.(\d+)/,"$2/$3/$1"));
alert("my date:"+ myDate );
@ Duke— new Date(Date.parse('02.02.1999'))produzirá resultados idênticos a new Date('02.02.1999'), incluindo Data inválida em alguns navegadores. Usar o analisador integrado é sem dúvida a pior maneira de analisar um carimbo de data / hora.
RobG de
2
Esta função também controla a data inválida de 29.2.2001.
function parseDate(str){var dateParts = str.split(".");if(dateParts.length !=3)returnnull;var year = dateParts[2];var month = dateParts[1];var day = dateParts[0];if(isNaN(day)|| isNaN(month)|| isNaN(year))returnnull;var result =newDate(year,(month -1), day);if(result ==null)returnnull;if(result.getDate()!= day)returnnull;if(result.getMonth()!=(month -1))returnnull;if(result.getFullYear()!= year)returnnull;return result;}
Você deve usar javascript e não jquery, pois não há tag jquery
Sagar
feliz ... o significado é apenas entender o senário
Bachas
Bem. Não acho que seu exemplo seja diferente daquele dado por Martin Staufcik. Na verdade, sua resposta tem lógica adicional para lidar com datas inválidas.
Sagar,
Martin Staufcik lida com essas condições que geralmente não ocorrem. você pode me dar qualquer calendário que possa fornecer invalidates.why deveríamos escrever um código tão longo quando podemos lidar com isso de forma resumida. Seria muito melhor se Martin Staufcik também desse para lidar com data com tempo para lidar.
Respostas:
Vejo:
Código:
fonte
"Note: parsing of date strings with the Date constructor (and Date.parse, they are equivalent) is strongly discouraged due to browser differences and inconsistencies."
?Se você estiver usando jQuery UI, pode formatar qualquer data com:
http://jsfiddle.net/mescalito2345/ND2Qg/14/
fonte
Usamos este código para verificar se a string é uma data válida
fonte
refs: http://momentjs.com/docs/#/parsing/string/
Se você usa moment.js, pode usar o modo "string" + "formato"
ex:
fonte
Tenho sido usado para seguir o código no IE. (Compatível com IE8)
fonte
Os desenvolvedores ASP.NET podem escolher este prático integrado (MS JS deve ser incluído na página):
http://msdn.microsoft.com/en-us/library/bb397521%28v=vs.100%29.aspx
fonte
Use o objeto Date:
Dê: 917902800000
fonte
new Date(Date.parse('02.02.1999'))
new Date(Date.parse('02.02.1999'))
Javascriptnew Date(Date.parse('02.02.1999'))
produzirá resultados idênticos anew Date('02.02.1999')
, incluindo Data inválida em alguns navegadores. Usar o analisador integrado é sem dúvida a pior maneira de analisar um carimbo de data / hora.Esta função também controla a data inválida de 29.2.2001.
fonte
você pode formatar a data apenas fazendo este tipo de código. Em javascript.
fonte