梳理数字但不在PHP中添加它们

时间:2011-07-18 22:38:02

标签: php html validation

我正在尝试对用户选择的日期和当前日期进行服务器端验证,这就是我所拥有的:

$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.如何在不添加数字的情况下组合数字?任何帮助表示赞赏。

6 个答案:

答案 0 :(得分:6)

如果要将它们连接为字符串,请使用点(。)

$dateval = $year . $month . $day;

但是,由于您正在使用日期,请考虑使用mktime函数

$dateval = mktime(0, 0, 0, $month, $day, $year)

答案 1 :(得分:4)

如果要连接字符串,则应使用连接运算符.

$dateval = $year . $month . $day;

否则,PHP将变得聪明且convert your strings to integers,这是PHP语言实现的弱类型的结果。

答案 2 :(得分:3)

PHP concatination使用.而非+。加号是JavaScript(可能还有其他语言)连接字符串的方式。

$dateval = $year . $month . $day;

答案 3 :(得分:2)

只需将+(添加)替换为.(连接)。

$dateval = $year.$month.$day;

答案 4 :(得分:2)

您需要将它们添加为字符串点运算符可以做到这一点。

还要确保$ dateval的格式类似于$ today的格式(例如,如果需要,包括短划线):

$dateval = $year.'-'.$month.'-'.$day;

答案 5 :(得分:1)

它们必须是字符串并使用.