如何在PHP中将年份格式YY转换为YYYY

时间:2016-12-20 09:35:15

标签: php date

我需要将年份(YY)转换为YYYY。在这里,我尝试在PHP中使用date函数,但没有得到预期的结果。

$expiry_year = "30"; //year=2030
echo date('Y',strtotime($expiry_year)); //Result: 1970
echo date('Y',$expiry_year); //Result: 1970

预期成果:2030

感谢所有人!

4 个答案:

答案 0 :(得分:4)

试试这个,使用createFromFormat

$date = "30";
$dates = DateTime::createFromFormat('y', $date);
//now to get the outpu:
$arr = $dates->format('Y'); // output : 2030

<强> DEMO

答案 1 :(得分:1)

  

注意:   如果以两位数格式指定年份编号,则00-69之间的值将映射到2000-2069和70-99到1970-1999。请参阅下面的注释,了解32位系统的可能差异(可能的日期可能会在2038-01-19 03:14:07结束)。

为此,您可以使用date_create_from_formatDateTime方法的createFromFormat别名,如

$expiry_year = "30";
$date = date_create_from_format('y',$expiry_year);
echo $date->format('Y'); //2030

Docs

答案 2 :(得分:1)

试试这个:

$date = DateTime::createFromFormat('y', '30');
echo $date->format('Y');

答案 3 :(得分:-1)

$expiry_year = "30";
$ce = substr(date('Y'),0,2); // Check the century
$ny = substr(date('Y'),2,2); // Check current year (2 digits)
if($expiry_year < $ny) {
    $next_ce = $ce+1;
    $output = $next_ce.$expiry_year;
} else {
    $output = $ce.$expiry_year;
}

那样的东西? :d