PHP日期输入格式
创建了一个PHP输入表单,以PHP日期输入格式,php,sql-server,date,format,Php,Sql Server,Date,Format,创建了一个PHP输入表单,以将日期发布到SQL查询中,在服务器端我们有0000-00-00日期格式,但在本地我们使用00/00/0000格式,如何让输入表单接受SQL查询中使用的00/00/0000格式?到现在为止,我们强迫用户把0000-00-00放进去,它工作得很好,但是很多用户都在抱怨这一点 <form action="index.php" method="POST"> <cust>From: </cust><input name="start_d
将日期发布到SQL查询中,在服务器端我们有0000-00-00
日期格式,但在本地我们使用00/00/0000
格式,如何让输入表单接受SQL查询中使用的00/00/0000
格式?到现在为止,我们强迫用户把0000-00-00
放进去,它工作得很好,但是很多用户都在抱怨这一点
<form action="index.php" method="POST">
<cust>From: </cust><input name="start_date" placeholder=" 0000-00-00" />
<cust>Until: </cust><input name="end_date" placeholder=" 0000-00-00" />
<select name="RegioSelect" placeholder="Choose"><option></option>
<?php
$region = $_POST["RegioSelect"];
$fdate = $_POST["start_date"];
$edate = $_POST["end_date"];
if(empty($fdate)){
$fdate = '2000-01-01';
} else {
$fdate;
}
if(empty($edate)){
$edate = date("Y/m/d");
} else {
$edate;
}
发件人:
直至:
从:到:
如下解决了这个问题,现在它在另一端工作,输入表单接受00/00/0000
日期格式,但在发布后转换为服务器端
<form action="list.php" method="POST">
<cust>From: </cust><input name="start_date" placeholder=" 00/00/0000" />
<cust>Until: </cust><input name="end_date" placeholder=" 00/00/0000" />
<select name="RegioSelect" placeholder="Choose"><option></option>
<?php
$region = $_POST["RegioSelect"];
//ORIGINAL VARIABLES
/*$fdate = $_POST["start_date"];
$edate = $_POST["end_date"];
*/
$fdate = date_format(date_create_from_format('d/m/Y', $_POST["start_date"]), 'Y-m-d');
$edate = date_format(date_create_from_format('d/m/Y', $_POST["end_date"]), 'Y-m-d');
if(empty($fdate)){
$fdate = '01/01/2000';
} else {
$fdate;
}
if(empty($edate)){
$edate = date("Y/m/d");
} else {
$edate;
}
发件人:
直至:
立即将表单值转换为ISO 8601YYYY-MM-DD
,并验证其有效性。同样,在为用户呈现数据时,请使用其特定于语言环境的设置,该设置可能是也可能不是YYYY/MM/DD
或其他完全不同的设置。通常,最好假定客户端具有某种任意格式,可以表示为适合于strptime
/strftime
的字符串,并且服务器必须使用YYYY-MM-DD
以保持一致性。您可能会发现,尽可能使用PHP类更容易。它有一个createFromFormat
初始化方法,可以接受用户输入和使用的格式(d/m/Y
,Y-m-d
,等等)。再次显示时,您可以使用格式
方法以任意方式输出。
<form action="list.php" method="POST">
<cust>From: </cust><input name="start_date" placeholder=" 00/00/0000" />
<cust>Until: </cust><input name="end_date" placeholder=" 00/00/0000" />
<select name="RegioSelect" placeholder="Choose"><option></option>
<?php
$region = $_POST["RegioSelect"];
//ORIGINAL VARIABLES
/*$fdate = $_POST["start_date"];
$edate = $_POST["end_date"];
*/
$fdate = date_format(date_create_from_format('d/m/Y', $_POST["start_date"]), 'Y-m-d');
$edate = date_format(date_create_from_format('d/m/Y', $_POST["end_date"]), 'Y-m-d');
if(empty($fdate)){
$fdate = '01/01/2000';
} else {
$fdate;
}
if(empty($edate)){
$edate = date("Y/m/d");
} else {
$edate;
}