我有一个问题。我正在尝试使用PHP将当前年份与给定年份进行比较,但根据我的编码,它总是返回给我。我正在解释下面的代码。
$datestr="2020-2029";
$curryear=date("Y");
$yearArr=explode("-",$datestr);
$strYear=strtotime($yearArr[0]);
if($curryear < $strYear){
$flag=true;
}else{
$flag=false;
}
echo $flag;
在这里,我需要在-
之前的第一年应该是当年的before year/same year
。请帮我解决这个问题。
答案 0 :(得分:1)
您不需要strtotime()
,因为此函数会返回时间戳,您只需要年份字符串。使用此:
$datestr="2016-2029";
$curryear=date("Y");
$yearArr=explode("-",$datestr);
$strYear=$yearArr[0];
if($curryear < $strYear){
$flag=true;
}else{
$flag=false;
}
echo $flag;
答案 1 :(得分:0)
您已经拥有4位数字表示年份(2016年),但是自1970年使用strtotime()
以来,您将其转换为秒数,这是一个更大的数字(var_dump($strYear);
会显示int(1496254560)
)。您只想删除该功能,否则您要比较2017 < 1496254560
。
$datestr = "2016-2029";
$curryear = date("Y");
$yearArr = explode("-",$datestr);
$strYear = $yearArr[0];
if ($curryear < $strYear) {
$flag = true;
} else {
$flag = false;
}
答案 2 :(得分:0)
回复:
php > var_dump("2016" < 2015);
php shell code:1:
bool(false)
php > var_dump("2016" < 2018);
php shell code:1:
bool(true)
使用strtotime,2016字符串将转换为整数。而你的年份总是低于这个数字。
PHP自动转换变量。
{{1}}
要在家中尝试此操作,请在bash中运行“php -a”。你可以动态试试php。