我正在尝试对用户选择的日期和当前日期进行服务器端验证,下面是我所拥有的:
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
$dateval = $year + $month + $day;
if ($dateval - $today < 0) {
$datepassed = 'no';
}
else {
$datepassed = 'yes';
}
现在据我所知,除了$dateval变量只是将所有数字相加而不是将它们放在一起形成用户选择的日期之外,一切都工作得很完美。例如20110719返回2037。我怎样才能使一个变量将这两个数组合而不相加呢?
如果要将它们连接为字符串,请使用点(.)
$dateval = $year . $month . $day;
但是,由于您正在处理日期,请考虑使用mktime函数
$dateval = mktime(0, 0, 0, $month, $day, $year)
如果要连接字符串,则应该使用连接操作符.
:
$dateval = $year . $month . $day;
否则,PHP会很聪明地将字符串转换为整数,这是PHP语言实现的弱类型的结果。
PHP连接使用.
而不是+
。加号是JavaScript(可能还有其他语言)连接字符串的方式。
$dateval = $year . $month . $day;
将+
(add)替换为.
(concatatate)
$dateval = $year.$month.$day;
您需要将它们添加为字符串。点运算符完成此操作。
还要确保$dateval的格式与今天的$的格式相似(即,如果需要的话包括破折号):
$dateval = $year.'-'.$month.'-'.$day;
必须是字符串并且使用.
。