PHP从变量得到年
问题描述:
我通常搞砸了,但我试图从一个变量得到一年$date = 2011-01-01
我想从变量得到2011
......我试过这个,但它没有回应任何东西。 ..PHP从变量得到年
date(strtotime("Y"), strtotime($date));
答
$year = date('Y', strtotime('2011-01-01'));
或者,如果你不想转换为日期,并相信您的输入格式:
$year = explode('-', '2011-01-01')[0];
以上需要PHP 5.4,在旧版本中,你需要两行:
$year = substr($date, 0, 4);
:
$arr = explode('-', '2011-01-01');
$year = $arr[0];
或者然而,这稍微快一些可替代的tigrang建议
或者,更快的方式,因为salathe建议:
$year = (int) $date;
(一切的第一个破折号会被忽略后,所以$year
将包含日期的年份部分的整数(不像其他的选项,其中$year
将是一个字符串)。
答
date('Y', strtotime($date))
应该做
第一个参数是格式,二是时间戳。
答
可能我建议使用PHP的DateTime class作为一种替代方案:
$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));
答
您可以将日期分解为列表并单独调用每个日期项目。
$date = '2012-01-01';
list($year, $month, $day) = explode('-', $date);
echo $year; // echoes 2012
或'$ =一年SUBSTR($日期,0,4);'是sliiiightly更快;) – tigrang
@tigrang感谢,补充说答案了。 – bfavaretto
或'$ year =(int)$ date;'being * waaaaaaaay *更快(对于微小的* way *值) – salathe