0

我试图让用户年龄,我得到正确的输出,但在我的 html 页面中有警告

错误:

A PHP Error was encountered
Severity: Notice
Message: A non well formed numeric value encountered
Filename: controllers/users.php
Line Number: 45

我使用的代码是:

$now = time();
$data['dob'] =  strftime('%Y', $now)-strftime('%Y',$query['dob']);   //it should be showig user age

上面显示的错误可能是什么原因,请帮助

4

3 回答 3

2

strftime返回一个字符串,您必须在减法之前将其转换为数字。

编辑:看到下面的评论,你不能减去,因为dob它与返回的格式不同time()。所以,按照上面的段落进行。

EDIT2:减去两个日期的最干净的方法是DateTime

于 2013-05-05T06:51:02.313 回答
1

我将字符串转换为 int ,并减去该值以获得我的输出

$userdob=(int)$query['dob']; $data['dob'] = strftime('%Y', $now)- strftime('%Y',$userdob);

于 2013-05-05T07:18:35.770 回答
-1

这可能是因为 $query['dob'] 包含的不是整数。

strftime() 期望它的第二个参数是时间戳(即 unix-timestamp,一个整数,表示过去的秒数)。如果我不得不猜测,我猜你 $query['dob'] 包含某种字符串。

于 2013-05-05T06:50:18.330 回答