gpt4 book ai didi

在函数中分配日期后,PHP 变量的值为 0

转载 作者:太空宇宙 更新时间:2023-11-03 11:03:34 24 4
gpt4 key购买 nike

我有一个函数是类或库的一部分,可以将用户的生日发送到数据库。出于某种原因,保存该信息的变量 ($this->birthdate) 发送的值是 0000-00-00 而不是实际的生日。

这是我的示例代码:

function isAgeValid(){

$birthDate1=$this->birth_year.'-'.$this->birth_month.'-'.$this->birth_day;
$birthDate1 = explode("-", $birthDate1);
$age = (date("md", date("U", mktime(0, 0, 0, $birthDate1[0], $birthDate1[1], $birthDate1[2]))) > date("md")
? ((date("Y")-$birthDate1[2])-1):(date("Y")-$birthDate1[2]));
$this->birthdate=($birthDate1);

return ($age > 17);
}

最佳答案

我的建议是将数据库中的字段更改为键入 TIMESTAMP并将其作为 Unix Timestamp 保存到数据库中.如果您需要再次从时间戳中提取人类可读的日期,请使用 $birthdate = date("Y-m-d",$timestamp);

$birthdate = strtotime($this->birth_year." ".$this->$birth_month." ".$this->birth_day
if($birthdate !== false)){
mysql_query("INSERT INTO table(timestamp_field)VALUES('".$birthdate."')");
}

这也可以防止 SQL injections因为 strtotime 函数确保 $birthdate 是一个数字。

关于在函数中分配日期后,PHP 变量的值为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13736422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com