Estou tentando converter uma data de yyyy-mm-dd
para dd-mm-yyyy
(mas não no SQL); no entanto, não sei como a função date exige um carimbo de data / hora e não consigo obter um carimbo de data / hora dessa string.
Como isso é possível?
php
date
formatting
matthy
fonte
fonte
Respostas:
Use
strtotime()
edate()
:(Veja a documentação sobre strtotime e date no site PHP.)
Observe que essa foi uma solução rápida para a pergunta original. Para conversões mais extensas, você realmente deve usar a
DateTime
classe para analisar e formatar :-)fonte
Se você deseja evitar a conversão do strtotime (por exemplo, o strtotime não pode analisar sua entrada), você pode usar,
Ou equivalente:
Você está dando primeiro a ele o formato $ dateString. Depois, você está dizendo o formato em que deseja que $ newDateString esteja.
Ou se o formato de origem sempre for "Ymd" (aaaa-mm-dd), use apenas DateTime :
fonte
DateTime::createFromFormat()
- é realmente mais útil questrtotime()
strtotime()
útil para converter o formato de tipo verdadeiro (Ymd) para outros formatos, masDateTime::createFromFormat()
é universal. É comoSTR_TO_DATE
no MySQLstrtotime()
Usar:
Sem a sobrecarga de conversão de datas, não tenho certeza se isso importará muito.
fonte
Este código funciona para todos os formatos de data.
Você pode alterar a ordem das variáveis de substituição, como $ 3- $ 1- $ 2, devido ao seu antigo formato de data.
fonte
Para mais, consulte a documentação para
strtotime
.Ou ainda mais curto:
fonte
Também outra possibilidade obscura:
Eu não sei se eu iria usá-lo, mas ainda :)
fonte
A resposta mais votada está realmente incorreta!O manual do PHP strtotime aqui afirma que "A função espera receber uma string contendo um formato de data em inglês".
O que realmente significa é que espera um formato de data americano nos EUA, como "mdY" ou "m / d / Y".Isso significa que uma data fornecida como "Ymd" pode ser mal interpretada
strtotime
. Você deve fornecer a data no formato esperado.Eu escrevi uma pequena função para retornar datas em vários formatos. Use e modifique à vontade.
Se alguém transformar isso em classe, ficaria feliz em compartilhar isso.fonte
Existem duas maneiras de implementar isso:
1
2)
fonte
Você pode tentar a
strftime()
função. Exemplo simples:strftime($time, '%d %m %Y');
fonte
Use esta função para converter de qualquer formato para qualquer formato
fonte
Dado a seguir, está o código PHP para gerar a data de amanhã usando
mktime()
e altere seu formato para formato dd / mm / aaaa e imprima-o usandoecho
.fonte
fonte
Você pode alterar o formato usando a data () e o horário ().
$ date = '18/09/2019';
data do eco ('dm-y', strtotime ($ date));
Resultado:
18-09-19
Podemos mudar o formato alterando o (dmy).
fonte
Para essa conversão específica, também podemos usar uma string de formato.
Obviamente, isso não funcionará para muitas outras conversões de formato de data, mas como estamos reorganizando as substrings nesse caso, essa é outra maneira possível de fazer isso.
fonte
strtotime()
. :-)fonte
Maneira simples Use
strtotime()
edate()
:Com tempo
fonte
Use
date_create
edate_format
Tente isso.
fonte