【问题标题】:Insert data from datepicker in database using php使用 php 将 datepicker 中的数据插入数据库
【发布时间】:2014-10-18 09:46:11
【问题描述】:

我有一个问题,我无法解决,所以我的脚本:

 <script>
 $(document).ready(function() {
     $("#datepicker").datepicker({
         format: 'dd-mm-yy'
     });
 })

我的html:

 <div class="form-group">
     <label>Date:</label>
     <input class="form-control marg-left-10" name="date"  type="text" id="datepicker">
 </div>

我的 php:

$date = date('dd-mm-yy', strtotime($this->input->post['date']));

但没有插入日期,在我的数据库中,日期如下所示:0000-00-00

请帮帮我

【问题讨论】:

标签: php mysql codeigniter mysqli php-5.3


【解决方案1】:

使用适当的格式

//converting one date format into another
    $date = date('Y-m-d', strtotime($this->input->post['date']));

【讨论】:

  • 如果我写: $date = date('Y-m-d', strtotime($this->input->post['date']));在我的数据库中保存日期:1969-12-31
  • 可能是默认日期。上面贴的是一个语法。你想把strtotime($this-&gt;input-&gt;post['date'])改成这个strtotime(//your input date)
【解决方案2】:

MySQL数据库支持YYYY-mm-dd日期格式

所以你应该改变你的脚本...

<script>
$(function(){
    var pickerOpts = {
        dateFormat: "yy-mm-dd"
    };  
    $("#datepicker").datepicker(pickerOpts);
});

</script>

【讨论】:

  • 这对我有用。这是一个奇怪的问题,因为我的本地数据库与 dd-mm-yy 一起使用,而我的远程数据库仅与此解决方案一起使用。
【解决方案3】:

如你所说

    My php:

$date = date('dd-mm-yy', strtotime($this->input->post['date']));
But the date doesn't insert, in my database the date look like this : 0000-00-00

问题是您正在以 dd-mm-YYYY 格式获取日期,而在 myswl 上它被保存为 YYYY-mm-dd 格式

因此,最好将列作为 varchar 并将日期另存为 'dd-mm-YYYY' 作为字符串

或者如果您想使用 mysql 日期格式,则将您的日期转换为 YYYY-mm-dd 格式

可以这样实现

$old_date = $this->input->post['date'];
$o_date_time = strtotime($o_date);
$date = date('Y-m-d', $o_date_time);

【讨论】:

    【解决方案4】:

    MYSQL 支持日期格式保存 'YYYY-MM-DD' 或 'YY-MM-DD'

    作为 'YYYY-MM-DD' 或 'YY-MM-DD' 格式的字符串。允许使用“宽松”语法:任何标点符号

    http://dev.mysql.com/doc/refman/5.6/en/date-and-time-literals.html

    像这样更改您的代码

    $date = date('Y-m-d', strtotime($this->input->post['date']));
    

      $date = new DateTime($this->input->post['date']);
      echo $date->format('Y-m-d');
    

    【讨论】:

      【解决方案5】:

      首先将你的格式更改为:

       $date1=date('Y-m-d',strtotime($fromd));
      

      如果您想更改格式,请在要显示日期的页面上执行类似操作..

      <?php
                                      $dte=date_create($rows->database row);
                                      echo date_format($dte,'d/m/y');
                                      ?> 
      

      【讨论】:

        【解决方案6】:

        Mysql 使用 yyyy-mm-dd 格式,所以首先你必须更改日期格式,然后将日期列的数据类型更改为文本

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-25
          • 2017-10-03
          • 2023-03-05
          • 1970-01-01
          • 2016-12-08
          相关资源
          最近更新 更多