Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
如何将文本框中的日期转换为MySQL DATETIME格式_Mysql_Datetime_Textbox_Input - Fatal编程技术网

如何将文本框中的日期转换为MySQL DATETIME格式

如何将文本框中的日期转换为MySQL DATETIME格式,mysql,datetime,textbox,input,Mysql,Datetime,Textbox,Input,我对php非常陌生,一直在阅读Larry Ullman的书来开发一个基本的db站点。 我使用YUI日历弹出日期选择器将日期添加到名为“日期”的文本字段中。输入的日期格式为2009年5月7日星期四 我尝试了许多不同的方法,尝试将日期输入mysql数据库,但它仍然保持在00 这是与我的日期字段相关的代码 // Check for a Date. if (eregi ("^([0-9]{2})/([0-9]{2})/([0-9]{4})$", $_POST['date'],)) { $

我对php非常陌生,一直在阅读Larry Ullman的书来开发一个基本的db站点。 我使用YUI日历弹出日期选择器将日期添加到名为“日期”的文本字段中。输入的日期格式为2009年5月7日星期四

我尝试了许多不同的方法,尝试将日期输入mysql数据库,但它仍然保持在00 这是与我的日期字段相关的代码

    // Check for a Date.
if (eregi ("^([0-9]{2})/([0-9]{2})/([0-9]{4})$", $_POST['date'],)) {
    $p = escape_data($_POST['date'],);
} else {
    $p = FALSE;
    echo '<p><font color="red">Please enter a valid Date!</font></p>';
}

    // Add the URL to the urls table.
    $query = "INSERT INTO urls (url, title, description, date) VALUES ('$u', '$t', '$d', '$p')";        
    $result = @mysql_query ($query); // Run the query.
    $uid = @mysql_insert_id(); // Get the url ID.

    if ($uid > 0) { // New URL has been added.
//检查日期。
如果(eregi(“^([0-9]{2})/([0-9]{2})/([0-9]{4})$”,$后['date'])){
$p=转义数据($发布日期,);
}否则{
$p=假;
回显“请输入有效日期!

”; } //将URL添加到URL表中。 $query=“插入url(url、标题、说明、日期)值('$u'、'$t'、'$d'、'$p')”; $result=@mysql_query($query);//运行查询。 $uid=@mysql_insert_id();//获取url ID。 如果($uid>0){//已添加新URL。
我想我已经提供了所有相关的信息,但再次道歉,如果这是没有帮助的,我会尽我所能向你提供任何其他信息,你可能需要的。
谢谢-Sean

您可能需要按照mysql对该数据类型所期望的方式格式化日期,否则它无法识别。您可以使用正则表达式或类似方法提取组件部分,并根据mysql日期时间类型的格式格式化


编辑:有关上述格式,请参阅。此外,您最好将日期/时间存储为unix时间戳,因为这通常更易于维护。

如果日期选择器传递的格式是“2009年5月7日,星期四”,则and函数应能为您提供传递到MySQL的有效日期:

$p = date("Y-m-d H:i:s",strtotime('Thursday, 7 May 2009'));

如果数据库字段是日期,则可能只需要“Y-m-d”部分。如果是日期时间,则还需要“H:i:s”。

mysql中的日期格式是YYYY-MM-DD,因此请更改在php上接受数据的方式

如果(eregi(“^([0-9]{2})/([0-9]{2})/([0-9]{4})$”,$后['date'])){ $p=转义数据($发布日期,); }否则{ $p=假; 回显“请输入有效日期!

应该是

如果(eregi(“^([0-9]{4}/([0-9]{2})/([0-9]{2}))$”,$后['date'],)){ $p=转义数据($发布日期,); }否则{ $p=假; 回显“请输入有效日期!


您好,谢谢。我一直在学习Unix时间戳,我正在尝试将文本更改为MySQL可以理解的值。YYYY MM DD,但我到目前为止还没有看到它。谢谢您的建议,我将阅读您发送的链接。谢谢您Zombat我将对此进行研究,我一直在查看mktime字符串。谢谢您Zombat,我有真正的如果我想定义键入的日期,例如12/02/2009,这是正确的语法吗?$date2=date2(^([0-9]{2})/([0-9]{2})/([0-9]{2})/([0-9]{4})$”,strotime('12/02/2009');$date1=date1(“Y-m-d”,strotime('2009年5月7日星期四);$p=date;感谢您的帮助,现在它变得更有意义了。我认为这看起来非常接近正确。只要您可以提供unix时间戳作为date()的第二个参数,您就可以创建一个正确的MySQL日期。strotime()与mktime()在这方面都非常有效。