【发布时间】:2015-08-12 22:44:59
【问题描述】:
我有一个表格,要求用户以 YYYY/MM/DD 的形式输入他们的生日。
该表单将他们的生日提交给database="members_info"table="members",并且该位置称为“dob”。
信息显示为“YYYY-MM-DD”。我试图以某种方式通过代码推送此信息,该代码根据今天的时间将他们的生日更改为年龄,并将该日期回显到页面上。
我的代码如下:
<?php
//connect to database
$db_host = "localhost";
$db_username = "root";
$db_pass = "";
$db_name = "member_info";
$db_table = "members";
@mysql_connect("$db_host","$db_username","$db_pass") or die ("Could Not Connect to Database");
@mysql_select_db("$db_name") or die ("No such database exists");
//querying database
$sql = mysql_query("SELECT * FROM members WHERE id = '1' ");
//fetch results
while ($rows = mysql_fetch_array($sql)) {
$age = $rows['dob'];
}
//subtract birthdate from birthdate to get age
$from = new DateTime($age);
$to = date("y/m/d");
echo $from->diff($to)->y
?>
我尝试了许多其他选项,但它们都不起作用,我认为这是我得到的最接近的选项。我的代码有什么问题?
另外,当我测试日期函数"date("y/m/d");" 是否有效时,它有效,但日期显示比今天的日期早一天。我迷失在这个看似不可能的任务中。
【问题讨论】:
-
记住mysql的日期格式是Y-m-d。
-
如果你想要的年龄就是
DOB - current date? -
查看 mysql 日期/时间函数的文档...您可以让 sql server 完成工作,而不是在 PHP 中完成