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: 2 つの日付を減算する最もクリーンな方法は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() は、2 番目の引数がタイムスタンプ (つまり、エポックからの経過秒数を表す整数である unix-timestamp) であることを想定しています。推測する必要がある場合、 $query['dob'] には何らかの文字列が含まれていると思います。

于 2013-05-05T06:50:18.330 に答える