Php 设置用户DOB和x27格式的正确方法;当使用PDO插入时为s
我在使用PDO将一个简单的Php 设置用户DOB和x27格式的正确方法;当使用PDO插入时为s,php,mysql,pdo,Php,Mysql,Pdo,我在使用PDO将一个简单的$dob表单输入和数据库插入数据类型为date的mysql表时遇到了一些奇怪的问题 输入表单(示例): 但它却没有日期?那么,仅仅2013-12年工作正常,但这一天总是-01 这与日期的选择格式有关吗?的第二个参数 date() 是一个整数值(自然数),而不是以破折号分隔的字符串。读这本书 就像你想做这样的事情: date('Y-m-d', strtotime( $year."-".$month."-".$day )); 另一端:此操作构造一个日期字符串,并将其
$dob
表单输入和数据库插入数据类型为date
的mysql表时遇到了一些奇怪的问题
输入表单(示例):
但它却没有日期?那么,仅仅2013-12年工作正常,但这一天总是-01
这与日期的选择格式有关吗?的第二个参数
date()
是一个整数值(自然数),而不是以破折号分隔的字符串。读这本书
就像你想做这样的事情:
date('Y-m-d', strtotime( $year."-".$month."-".$day ));
另一端:此操作构造一个日期字符串,并将其传递给date(),后者反过来返回相同的日期字符串;-)首先,PHP
date()
命令只接受要转换为指定格式的正式UNIX时间戳。其次,虽然表单中有名为dob month
、dob day
和dob year
的变量,但看起来您似乎试图在PHP处理脚本中的变量$month
、$day
和$year
中使用它们。
为什么不从一个好的PHPdate
教程开始,解释日期字符串、日期对象和UNIX时间戳之间的区别呢。阅读PHP的strotime()
函数和mySQL的DATE\u FORMAT()
函数。当你完成这些事情的时候,你应该得到足够的信息返回并提交一个经过莫尔教育的问题
编辑/附加信息
<select name="dob-month">
<option value="1">January</option>
<option value="6">June</option>
<option value="12">December</option>
</select>
<select name="dob-day">
<option>1</option> // Same here - stick to a single digit
<option>15</option>
<option>31</option>
</select>
<select name="dob-year">
<option>2013</option>
</select>
使用此代码
$birthdate = $_POST['dob-year']."/".$_POST['dob-month']."/".$_POST['dob-date'];
$birthdate = date('Y-m-d', strtotime($year."-".$month."-".$day));
$birthdate = date('Y-m-d', mktime(0,0,0,$month,$day,$year));
而不是这个代码
$birthdate = $_POST['dob-year']."/".$_POST['dob-month']."/".$_POST['dob-date'];
$birthdate = date('Y-m-d', strtotime($year."-".$month."-".$day));
$birthdate = date('Y-m-d', mktime(0,0,0,$month,$day,$year));
生日是什么字段类型?$year、$month和$day是什么,可能您需要strotime()?请尝试使用
strotime($day$month$year”)
,并注意语言环境对此的处理。你的问题让我想起了一点:而且,谢谢你的讽刺,我编辑了php,因为帖子是通过一个控制器传递的,我不想把每个人都搞糊涂,然后忘了把它放回去。我理解这些类型,即使是$birthdate=date('Y-m-d',strottime($year.-“$month.-”$day))代码>我还是有问题?这不是讽刺。这仍然是一个措辞拙劣的问题,几乎没有足够的支持代码来找出什么;您的脚本正在进行中strotime()
可能不够可靠,无法在这种情况下使用。您可能需要多次使用mktime()
.echo$birthdate
,看看它是否因为strotime()而被删除
转换。在将日期插入日期时
是否应使用格式为'Y-m-d'
的日期时间戳或字符串?@Silver89否将整数值作为第二个参数传递给date()。整数值是UNIX时间戳。作为UNIX时间戳的当前时间的来源是time()。因此,date('Y-m-d',time())就可以了。
$birthdate = date('Y-m-d', strtotime($year."-".$month."-".$day));
$birthdate = date('Y-m-d', mktime(0,0,0,$month,$day,$year));