Alguém sabe como posso obter um datetime
valor de tipo de dados MySQL , como YYYY-MM-DD HH:MM:SS
e analisá-lo ou convertê-lo para funcionar na Date()
função JavaScript , por exemplo: - Data ('AAAA, MM, DD, HH, MM, SS);
Obrigado!
Alguém sabe como posso obter um datetime
valor de tipo de dados MySQL , como YYYY-MM-DD HH:MM:SS
e analisá-lo ou convertê-lo para funcionar na Date()
função JavaScript , por exemplo: - Data ('AAAA, MM, DD, HH, MM, SS);
Obrigado!
Respostas:
Algumas das respostas fornecidas aqui são complicadas demais ou simplesmente não funcionarão (pelo menos, não em todos os navegadores). Se você der um passo atrás, poderá ver que o registro de data e hora do MySQL possui cada componente de tempo na mesma ordem que os argumentos exigidos pelo
Date()
construtor.Tudo o que é necessário é uma divisão muito simples na string:
Aviso justo: isso pressupõe que o servidor MySQL está exibindo datas UTC (que é o padrão e recomendado se não houver nenhum componente de fuso horário da string).
fonte
var d = new Date("2010-06-09 13:12:01");
. O interessante é que o Chrome não tem nenhum problema.new Date(Date.UTC(...))
é melhor, mas assume que o mysql usa utc ... de qualquer forma considerado antes que isso possa ser considerado uma resposta correta.Para adicionar à excelente resposta de Andy E, uma função de uso comum pode ser:
Dessa forma, dada uma data / hora do MySQL no formulário
"YYYY-MM-DD HH:MM:SS"
ou mesmo no formato abreviado (única data),"YYYY-MM-DD"
você pode:fonte
new Date(Date.UTC(...))
outro sábio a resposta é errada por até 24 horas ...Acho que encontrei uma maneira mais simples, que ninguém mencionou.
Uma coluna MySQL DATETIME pode ser convertida em um timestamp unix através de:
Podemos criar um novo objeto Data JavaScript usando o construtor que requer milissegundos desde a época. A função unix_timestamp retorna segundos desde a época, portanto, precisamos multiplicar por 1000:
O valor resultante pode ser usado diretamente para instanciar um objeto Data Javascript correto:
Espero que isto ajude.
fonte
Um revestimento para navegadores modernos (IE10 +):
E apenas por diversão, aqui está uma lista que funcionará em navegadores mais antigos (agora corrigidos):
fonte
As versões recentes do JavaScript lerão uma data no formato ISO8601; portanto, tudo o que você precisa fazer é alterar o espaço para um 'T', fazendo algo como um dos seguintes:
fonte
Para adicionar ainda mais à solução de Marco. Eu prototipei diretamente para o objeto String.
Dessa forma, você pode ir diretamente para:
fonte
Existe uma maneira mais simples, string de carimbo de data / hora sql:
O formato mais próximo do carimbo de data e hora para Date () a receber é o seguinte, portanto, substitua o espaço em branco por "T":
Em seguida, crie o objeto de data:
result seria o objeto date:
fonte
Da resposta de Andy , para AngularJS - Filtro
fonte
fonte
Primeiro, você pode dar ao objeto Date (classe) do JavaScript o novo método 'fromYMD ()' para converter o formato de data YMD do MySQL em formato JavaScript, dividindo o formato YMD em componentes e usando estes componentes de data:
Agora você pode definir seu próprio objeto (funcion no mundo JavaScript):
e agora você pode simplesmente criar uma data a partir do formato de data do MySQL;
fonte
Você pode usar o timestamp unix para direcionar:
SELECT UNIX_TIMESTAMP(date) AS epoch_time FROM table;
Em seguida, coloque epoch_time no JavaScript, e é uma questão simples de:
var myDate = new Date(epoch_time * 1000);
A multiplicação por 1000 ocorre porque o JavaScript leva milissegundos e UNIX_TIMESTAMP fornece segundos.
fonte
Uma pesquisa rápida no google forneceu o seguinte:
Fonte: http://snippets.dzone.com/posts/show/4132
fonte
Por que não fazer isso:
fonte