Estou armazenando tempo em um banco de dados MySQL como um carimbo de data / hora Unix e que é enviado para algum código JavaScript. Como eu tiraria esse tempo?
Por exemplo, no formato HH / MM / SS.
javascript
date
time
date-format
time-format
roflwaffle
fonte
fonte
Respostas:
Para obter mais informações sobre o objeto Data, consulte a especificação MDN ou ECMAScript 5 .
fonte
fonte
var min = a.getMinutes() < 10 ? '0' + a.getMinutes() : a.getMinutes(); var sec = a.getSeconds() < 10 ? '0' + a.getSeconds() : a.getSeconds();
getMonth()
retorna um número de mês entre 0 e 11, portantoa.getMonth() - 1
está errado.O JavaScript funciona em milissegundos, portanto, primeiro você terá que converter o carimbo de data e hora do UNIX de segundos para milissegundos.
fonte
Sou parcial na
Date.format()
biblioteca de Jacob Wright , que implementa a formatação de data JavaScript no estilo dadate()
função do PHP .fonte
format is not a function
. Mas isso aparentemente funciona: stackoverflow.com/a/34015511/7550772Usar:
e por tempo:
consulte Date.prototype.toLocaleDateString ()
fonte
toLocaleString
inclui data e hora.Aqui está a solução de uma linha mais curta para formatar segundos como
hh:mm:ss
:Nota: esta solução não requer bibliotecas de terceiros e é suportada em todos os navegadores modernos e mecanismos JavaScript.
fonte
toTimeString
não estava funcionando bem com fusos horários. Infelizmente, sua edição foi rejeitada antes que eu a visse. No entanto, eu sugiro usartoISOString
, poistoGMTString
está obsoleto e pode retornar resultados diferentes em plataformas diferentes.Eu pensaria em usar uma biblioteca como momentjs.com , que torna isso realmente simples:
Com base em um carimbo de data / hora Unix:
Com base em uma string de data do MySQL:
fonte
console.log
exemplos, fiquei confuso com o formato devido ao arquivo/
, mas isso me ajudou muito.O carimbo de data e hora do UNIX é o número de segundos desde 00:00:00 UTC em 1 de janeiro de 1970 (de acordo com a Wikipedia ).
O argumento Data do objeto em Javascript é o número de milissegundos desde 00:00:00 UTC em 1 de janeiro de 1970 (de acordo com a documentação do W3Schools Javascript ).
Veja o código abaixo, por exemplo:
dá:
fonte
solução one-liner mais curta para formatar segundos como hh: mm: ss: variante:
fonte
Usando Moment.js , você pode obter data e hora assim:
E você pode obter apenas tempo usando isso:
fonte
O problema com as soluções acima mencionadas é que, se hora, minuto ou segundo, tiver apenas um dígito (ou seja, 0-9), o horário estará errado, por exemplo, pode ser 2: 3: 9, mas deve ser 02: 03:09.
De acordo com esta página , parece ser uma solução melhor para usar o método "toLocaleTimeString" da Date.
fonte
date.toLocaleTimeString()
toTimeString
método Verifique aqui: stackoverflow.com/a/35890537/1249581 .Outra maneira - a partir de uma data ISO 8601 .
fonte
No momento, você deve usar o carimbo de data / hora unix:
fonte
Com base na resposta do @ shomrat, aqui está um trecho que grava automaticamente a data e hora dessa maneira (um pouco semelhante à data de respostas do StackOverflow:)
answered Nov 6 '16 at 11:51
:ou
ou (se diferente, mas no mesmo ano que hoje)
ou (se outro ano que hoje)
fonte
A solução moderna que não precisa de uma biblioteca de 40 KB:
Intl.DateTimeFormat é a maneira não culturalmente imperialista de formatar uma data / hora.
fonte
Meu registro de data e hora está sendo buscado em um back-end do PHP. Eu tentei todos os métodos acima e não funcionou. Encontrei um tutorial que funcionava:
os métodos acima irão gerar esses resultados
Existem vários métodos que funcionam perfeitamente com registros de data e hora. Não posso listá-los todos
fonte
fonte
Preste atenção ao problema zero com algumas das respostas. Por exemplo, o registro de data
1439329773
e hora seria convertido por engano em12/08/2015 0:49
.Eu sugeriria usar o seguinte para superar esse problema:
Agora resulta em:
fonte
fonte
fonte
Consulte Conversor de Data / Época .
Você precisa
ParseInt
, caso contrário não funcionaria:fonte
Você pode usar a seguinte função para converter seu carimbo de data / hora em
HH:MM:SS
formato:Sem passar um separador, ele usa
:
como separador (padrão):Se você deseja usar
/
como separador, apenas passe-o como o segundo parâmetro:Demo
Veja também este violino .
fonte
fonte
Se você deseja converter a duração do tempo Unix em horas, minutos e segundos reais, use o seguinte código:
fonte
fonte
O código abaixo também fornece milissegundos de três dígitos, ideal para prefixos de log do console:
fonte
moment.js
https://momentjs.com/
fonte
day.js
github.com/iamkun/dayjsA resposta dada pelo @Aron funciona, mas não funcionou para mim, pois eu estava tentando converter o carimbo de data / hora a partir de 1980. Portanto, fiz algumas alterações da seguinte maneira
Portanto, se você tiver um registro de data e hora a partir de mais uma década, use-o. Isso salvou muita dor de cabeça para mim.
fonte