J'ai une date dans ce format 2068-06-15
. Je veux obtenir l'année à partir de la date, en utilisant les fonctions php. Quelqu'un pourrait-il s'il vous plaît suggérer comment cela pourrait être fait.
$date = DateTime::createFromFormat("Y-m-d", "2068-06-15");
echo $date->format("Y");
La classe DateTime n'utilise pas d'horodatage Unix en interne, elle gère donc les dates antérieures à 1970 ou après 2038.
Vous pouvez utiliser les fonctions strtotime
et date
comme ceci:
echo date('Y', strtotime('2068-06-15'));
Notez cependant que PHP peut gérer des années jusqu'à 2038
Si votre date est toujours dans ce format, vous pouvez aussi obtenir l'année comme ceci:
$parts = explode('-', '2068-06-15');
echo $parts[0];
Je voudrais utiliser ceci:
$parts = explode('-', '2068-06-15');
echo $parts[0];
Il semble que la date provient d'une source où elle est toujours la même, beaucoup plus rapidement de cette façon en utilisant exploser.
public function getYear($pdate) {
$date = DateTime::createFromFormat("Y-m-d", $pdate);
return $date->format("Y");
}
public function getMonth($pdate) {
$date = DateTime::createFromFormat("Y-m-d", $pdate);
return $date->format("m");
}
public function getDay($pdate) {
$date = DateTime::createFromFormat("Y-m-d", $pdate);
return $date->format("d");
}
<?php
_
liste ($ année) = exploser ("-", "2068-06-15");
echo $ année;
?>
</ code>
Vous avez écrit que le format peut changer de AAAA-mm-jj à jj-mm-AAAA, vous pouvez essayer de trouver l’année
$parts = explode("-","2068-06-15");
for ($i = 0; $i < count($parts); $i++)
{
if(strlen($parts[$i]) == 4)
{
$year = $parts[$i];
break;
}
}
$Y_date = split("-","2068-06-15");
$year = $Y_date[0];
Vous pouvez aussi utiliser exploser
En supposant que vous ayez la date sous forme de chaîne (désolé, votre question ne permet pas de savoir si tel est le cas), vous pourriez diviser la chaîne sur les - caractères comme ceci:
$date = "2068-06-15";
$split_date = split("-", $date);
$year = $split_date[0];