Je veux vérifier si une chaîne de date / heure contient un jour ou non?

J'ai utilisé la fonction date_pharse () mais elle ajoute automatiquement day => 1 si elle ne trouve aucun jour. Je ne pouvais donc pas savoir si une chaîne contenait un jour ou non.

Par exemple - $date = "2021-02";

Comment savoir si cette chaîne contient un jour ou non?

0
PK Kulhari 24 févr. 2021 à 06:44

2 réponses

Meilleure réponse

Je pense que vous vous attendez à quelque chose comme ça.

<?php
$date1 = "2021-02";
$date2 = "2021-02-11";
$date3 = "2021-12";
$date4 = "2021-12-14";
$date1_array = explode("-", $date1);
$date2_array = explode("-", $date2);
$date3_array = explode("-", $date3);
$date4_array = explode("-", $date4);

if (count ($date1_array) == 3)
{
    echo $date1 . ": It's a Date.";
    echo "<br />";
}
if (count ($date2_array) == 3)
{
    echo $date2 . ": It's a Date.";
    echo "<br />";
}
if (count ($date3_array) == 3)
{
    echo $date3 . ": It's a Date.";
    echo "<br />";
}
if (count ($date4_array) == 3)
{
    echo $date4 . ": It's a Date.";
    echo "<br />";
}

?>
0
John Doe 24 févr. 2021 à 03:54

La méthode DateTime :: createFromFormat vérifie bien que le format est respecté . Les entrées telles que «2019-02-» ou «2019-xx-23» sont également reconnues comme incorrectes.

$date = "2021-02-x";

$dateTime = DateTime::createFromFormat('Y-m-d',$date);

if($dateTime){
  echo $date.' ok';
}
else {
  echo 'wrong date '.$date;
}
0
jspit 24 févr. 2021 à 08:11