Как получить только часть года строки даты? - PullRequest
4 голосов
/ 22 июня 2011

У меня есть введенная пользователем дата, например: 1979-06-13

Теперь я хочу сравнить год:

foreach ($list as $key) {
    $year = 1979;
    if ($key > $year) { //only the year
        echo (error);
        }
}

Как получить только год?

Спасибо

Ответы [ 4 ]

21 голосов
/ 22 июня 2011

Возможно, более дорого, но, возможно, более гибко, используйте strtotime () для преобразования в метку времени и date () для извлечения нужной части даты.

$year = date('Y', strtotime($in_date));
9 голосов
/ 22 июня 2011

С strtok:

$year = strtok($date, '-');

Если вы хотите, чтобы год был целым, вы также можете использовать intval:

$year = intval($date);
1 голос
/ 09 сентября 2014

Вот простой и точный способ.

//suppose
$dateProvided="1979-06-13";
//get first 4 characters only
$yearOnly=substr($dateProvided,0,4);
echo $yearOnly;
//1979

и еще одна вещь, которую нужно знать, в некоторых случаях, например, например, когда дата похожа на 2010-00-00, функция даты не работает должным образом, она вернет 2009 вместо 2010. Вот пример

//suppose
$dateProvided="2010-00-00";
$yearOnly = date('Y', strtotime($dateProvided));
//we expect year to be 2010 but the value of year would be 2009
echo $yearOnly;
//2009
1 голос
/ 22 июня 2011

вы можете взорвать дату.

$inputDate = "1979-06-13";
$myDate = 1979;
$datePieces = explode("-",$inputDate);
if (intval($datePieces[0]) > $myDate){
  echo "error";
};

http://php.net/manual/en/function.explode.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...