我通常把这搞砸了,但我试图从$date = 2011-01-01
我试图2011
从变量中得到的变量中得到一年......我试过这个,但它没有回应任何东西......
date(strtotime("Y"), strtotime($date));
$year = date('Y', strtotime('2011-01-01'));
或者,如果您不想转换为日期,并相信您的输入格式:
$year = explode('-', '2011-01-01')[0];
上面需要 PHP 5.4,在旧版本上你需要两行:
$arr = explode('-', '2011-01-01');
$year = $arr[0];
或者,tigrang 建议的这个稍快的替代方案:
$year = substr($date, 0, 4);
或者,正如salathe 所建议的,一种更快的方法:
$year = (int) $date;
(第一个破折号之后的所有内容都将被忽略,因此$year
将包含一个带有日期部分的整数(与其他选项不同,其中$year
将是一个字符串)。
date('Y', strtotime($date))
应该做
第一个参数是格式,第二个是时间戳。
您可以将日期分解为列表并单独调用每个日期项。
$date = '2012-01-01';
list($year, $month, $day) = explode('-', $date);
echo $year; // echoes 2012
我可以建议使用 PHP 的DateTime 类作为替代方案:
$date = '2011-01-01';
$dateTime = new DateTime($date);
echo $dateTime->format('Y');
DateTime
一切都很好,但让我们去老学校吧。
sscanf($date, '%d', $year);
// or
$year = strtok($date, '-');
// or
$year = substr($date, 0, 4);
// or
$year = (int) $date;
或者,重新戴上明智的帽子,您可以使用DateTime
或正确使用date()
。
$datetime = new DateTime($date);
$year = $datetime->format('Y');
// or
$year = date('Y', strtotime($date));