У меня есть дата в этом формате 2068-06-15.Я хочу получить год от даты, используя функции PHP.Может кто-нибудь подсказать, пожалуйста, как это можно сделать.
2068-06-15
$date = DateTime::createFromFormat("Y-m-d", "2068-06-15"); echo $date->format("Y");
Класс DateTime не использует внутреннюю метку времени Unix, поэтому он может обрабатывать даты до 1970 года или после 2038 года.
Вы можете использовать функции strtotime и date следующим образом:
strtotime
date
echo date('Y', strtotime('2068-06-15'));
Обратите внимание, что PHP может обрабатывать год до 2038
Вы можете проверить это здесь
Если ваша дата всегда в этом формате, вы также можете получить год следующим образом:
$parts = explode('-', '2068-06-15'); echo $parts[0];
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"); }
Я бы использовал это:
Похоже, что дата исходит из источника, где она всегда одинакова, гораздо быстрее с помощью взрыва.
<pre><code><?php list ($ year) = explode ("-", "2068-06-15"); echo $ year; ?>
<pre><code><?php
Вы написали, что формат может измениться с ГГГГ-мм-дд на дд-мм-ГГГГ, вы можете попытаться найти год там
$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];
Вы можете использовать также взорваться
Предполагая, что у вас есть дата в виде строки (извините, это неясно из вашего вопроса, если это так) может разбить строку на символы - примерно так:
$date = "2068-06-15"; $split_date = split("-", $date); $year = $split_date[0];