Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP日期输入格式_Php_Sql Server_Date_Format - Fatal编程技术网

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

创建了一个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_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 8601
YYYY-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;
    }