Recentemente encontrei um problema, ou seja, ao pegar a data no formulário e transferi-la para background através do json, encontrei a função Date.parse(str) e relatei um erro em ff: NAN
Depois de pesquisar algumas informações, descobri que a função Date.parse() possui requisitos para o formato de data: consulte a função Date.parse para obter detalhes.
Para data de operação js:
Crie um objeto de data:
var objDate=new Date([lista de argumentos]);
Existem cinco tipos de formulários de parâmetros:
Copie o código do código da seguinte forma:
ver plainnew Date("mês dd,aaaa hh:mm:ss");
new Date("mês dd,aaaa");
nova Data(aaaa,mt,dd,hh,mm,ss);
nova Data(aaaa, mês, dd);
nova data(ms);
ilustrar:
mês: Indica o nome do mês em inglês, de janeiro a dezembro
mth: representa o mês como um número inteiro, de 0 (janeiro) a 11 (dezembro)
Contente
dd: indica o dia do mês, de 1 a 31
aaaa: ano com quatro dígitos
hh: hora, das 0 (meia-noite) às 23 (23h)
mm: Minutos, um número inteiro de 0 a 59
ss: segundos, um número inteiro de 0 a 59
ms: milissegundos, um número inteiro maior ou igual a 0, indicando o número de milissegundos entre o horário a ser criado e 1º de janeiro de 1970, horário GMT.
O que eu encontrei:
A construção de data em Javascript também pode suportar new Date("yyyy/MM/dd"); onde: MM é um número inteiro que representa o mês de 0 (janeiro) a 11 (dezembro), por isso é muito conveniente usar expressões regulares Habilidade. para converter datas de string.
Código de teste:
Copie o código do código da seguinte forma:
<mce:script type="text/javascript"><!--
document.write("<br/>" + new Date("3 de fevereiro de 2009"));
document.write("<br/>" + new Date("3 de fevereiro de 2009 10:52:03"));
document.write("<br/>");
document.write("<br/>" + nova Data(2009,1,3));
document.write("<br/>" + nova Data(2009,1,3,10,52,03));
document.write("<br/>");
document.write("<br/>" + new Date(Date.parse("3 de fevereiro de 2009")));
document.write("<br/>" + new Date(Date.parse("3 de fevereiro de 2009 10:52:03")));
document.write("<br/>" + new Date(Date.parse(2009,1,3))); //Saída: NAN
document.write("<br/>" + new Date(Date.parse(2009,1,3,10,52,03))); //Saída: NAN
document.write("<br/>" + nova Data(Date.parse("03/02/2009")));
document.write("<br/>");
document.write("<br/>" + nova Data("03/02/2009"));
document.write("<br/>" + new Date("2009/02/03 11:12:13"));
document.write("<br/>" + new Date("2009-02-03")); //Saída: NAN
// --></mce:script>
Resultado de saída:
Terça, 3 de fevereiro 00:00:00 UTC+0800 2009
Terça-feira, 3 de fevereiro 10:52:03 UTC+0800 2009
Terça, 3 de fevereiro 00:00:00 UTC+0800 2009
Terça-feira, 3 de fevereiro 10:52:03 UTC+0800 2009
Terça, 3 de fevereiro 00:00:00 UTC+0800 2009
Terça-feira, 3 de fevereiro 10:52:03 UTC+0800 2009
NaN
NaN
Terça, 3 de fevereiro 00:00:00 UTC+0800 2009
Terça, 3 de fevereiro 00:00:00 UTC+0800 2009
Terça, 3 de fevereiro 11:12:13 UTC+0800 2009
NaN
-------------------
Copie o código do código da seguinte forma:
janela.onload=função(){
var dependenteVal="2005-3-4";
//Converte para data com base na string de data
var regEx = new RegExp("//-","gi");
dependedVal=dependedVal.replace(regEx,"/");
//dependedVal=dependedVal.replace("//-","/");//Isso não funciona
alerta (dependedVal)
//parse requer o formato de 2005/3/4
var milissegundos=Date.parse(dependedVal);
alerta (milissegundos)
var dependenteDate=nova Data();
dependenteDate.setTime(milissegundos);
var agora = nova Data();
//Preste atenção nos parênteses, questões prioritárias, desamparo
alert("O número de anos de diferença:"+(now.getFullYear() - dependenteDate.getFullYear()));
}
Na verdade, a data deve ser transmitida entre o navegador e o servidor através do valor de milissegundos, caso contrário será reportado um erro 400!