从指定的date获取一年的PHP

我有一个2068-06-15格式的date。 我想从date,使用PHP函数获得的一年。 有人可以请build议如何做到这一点。

 $date = DateTime::createFromFormat("Ymd", "2068-06-15"); echo $date->format("Y"); 

DateTime类在内部不使用unix时间戳,因此它处理1970年之前或2038之后的date。

你可以使用像这样的strtotimedate函数:

 echo date('Y', strtotime('2068-06-15')); 

请注意,PHP可以处理2038年

你可以在这里testing一下


如果你的date总是这样的格式,你也可以得到这样的一年:

 $parts = explode('-', '2068-06-15'); echo $parts[0]; 

 <?php
 list($ year)= explode(“ - ”,“2068-06-15”);
 echo $ year;
 ?>

我会用这个:

 $parts = explode('-', '2068-06-15'); echo $parts[0]; 

看起来date来自一个始终相同的来源,这种方式使用爆炸更快。

  public function getYear($pdate) { $date = DateTime::createFromFormat("Ymd", $pdate); return $date->format("Y"); } public function getMonth($pdate) { $date = DateTime::createFromFormat("Ymd", $pdate); return $date->format("m"); } public function getDay($pdate) { $date = DateTime::createFromFormat("Ymd", $pdate); return $date->format("d"); } 

假设你有一个string的date(对不起,从你的问题是不清楚,如果是这样的话)可以拆分字符的字符如下所示:

 $date = "2068-06-15"; $split_date = split("-", $date); $year = $split_date[0]; 
 $Y_date = split("-","2068-06-15"); $year = $Y_date[0]; 

你也可以使用爆炸

你写的格式可以从YYYY-MM-DD变为DD-MM-YYYY,你可以尝试在那里find年份

 $parts = explode("-","2068-06-15"); for ($i = 0; $i < count($parts); $i++) { if(strlen($parts[$i]) == 4) { $year = $parts[$i]; break; } }