Comparar a data em PHP – assim vai

php_date_compare Como você compara na verdade 2 dados (plural de data = dados) em PHP com o outro? A questão parece-me apenas vezes mais fácil do que é.
O primeiro pensamento que vem a maior parte do tempo, é o seguinte. Podemos armazenar 2 dados como uma sequência de caracteres e compará-los.

Grato

$date2) echo “$date1 é mais recente que $date2”; outra echo “$date1 é mais velho que $date2”;? >

Saída:

2012-1-12 é mais recente que a 2011-10-12

À primeira vista, isto parece ser uma solução de trabalho. No entanto, se houver dois dados em um formato diferente?

$date2) echo “$date1 é mais recente que $date2”; outra echo “$date1 é mais velho que $date2”;? >

Saída:

01/12/12 é mais velho que 2011-10-12

Agora declara a data em 2012 em um tempo menor do que a data em 2011, ser que é obviamente errado. Mas esse comportamento é correto do ponto de vista do PHP, finalmente duas sequências de caracteres são comparadas e a data de 2012 foi definitivamente a sequência de caracteres menor/menor.

7 PHP e MySQL. A formação prática abrangente. Desenvolver páginas Web dinâmicas, criar bancos de dados, proteger páginas da Web

Jan Unger – trabalhos de Rhine – DVD-ROM – edição de publicação não. 1 (01/10/2016) – alemão

EUR 39,99

Comparar a data corretamente

Uma solução de trabalho é os dados primeiro em timestamps (alemão: carimbo de tempo) para converter e este timestamps numéricos, em seguida, para comparar. Para converter de uma sequência de caracteres de data em um timestamp, PHP fornece a função strtotime($zeitString), que leva a uma data, ou um valor de tempo e retorna o timestamp correspondente.

$dateTimestamp2) echo “$date1 é mais recente que $date2”; outra echo “$date1 é mais velho que $date2”;? >

Saída:

01/12/12 é mais recente que a 2011-10-12

No entanto, sabemos que muitos caminhos levam a Roma e então há ainda mais soluções para o problema inicial. Então, outra solução seria usar a classe DateTime que é o PHP versão 5.2.0 disponível.

Eco $date2) $date1-> format(“Y-m-d”). “é novo como”. $date2-> formato (“Y-m-d”); echo mais $date1-> format(“Y-m-d”). “é mais antigo que ‘. $date2 format(“Y-m-d”) ;?-> >

Saída:

2012-01-12 é mais recente que a 2011-10-12

Para usar a solução baseada na classe DateTime, tem Formatar mesmo ambos dados uniformemente. Bem, você poderia usar também a data ()-Funktion na primeira solução para formatar os dados, mas a primeira maneira seria ainda mais longa. No final de que lado é para comparar dois dados, se é uma questão de gosto.

Como você compara duas datas em PHP? Use uma das duas maneiras listadas ou fazendo outra? Eu estaria interessado em como você assumir o problema.

Sobre o autor: Este artigo, bem como 363 outros artigos sobre código-bude.net, escrito por Raphael. -Desde 2011 blog aqui sobre programação, meu software, escrever tutoriais e tentar o meu conhecimento, portanto ele vai bem, para compartilhar com meus leitores. Além disso, escrevo sobre temas de meus estudos sobre derwirtschaftsinformatiker.de. E-mail • Google + • Facebook • Twitter

2SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail