【问题标题】:jQuery UI's "datepicker" modules date cant be saved to MySQLjQuery UI 的“datepicker”模块日期不能保存到 MySQL
【发布时间】:2011-07-31 11:22:11
【问题描述】:

我从 Datepicker 返回的日期格式为 (yy-mm-dd),它返回的字符串为 2011-04-22。

当我想将它插入 MySQL 表中数据类型为 DATE 的列中时,我会保存 0000-00-00。浏览 SO,我发现了有关 FROM_UNIXTIME 的建议,但这给了我 1970-01-01 的日期。

有什么帮助吗?

【问题讨论】:

  • 您可以在构建查询的位置发布您的代码吗?
  • 1970-01-01 是 UNIXTIME 允许的最早时间,它基本上相当于 0000-00-00。您只需确保输出的字符串格式与 MYSQL 中的日期格式相匹配
  • 不正确。您可以使用负时间戳数来获取早于 Unix 纪元 1970-01-01 的日期

标签: php jquery mysql jquery-ui date


【解决方案1】:

您需要验证数据类型是否设置为 MySQL DATE 字段(而不是 DATETIME 字段,它需要格式为“yyyy-mm-dd hh:mm:ss”的时间)

此外,MySQL DATE 数据类型正在寻找一个 4 位数的年份字段,其中您有一个 2 位数的字段,因此请确保您的日期选择器输出为 yyyy-mm-dd。

$.datepicker.formatDate('yyyy-mm-dd');

此外,如果您尝试使用 unix 时间戳来实现这一点,请不要忘记 Javascript 中的 Unix 时间戳包括毫秒,而在 PHP/MySQL 中它们被截断为秒。因此,如果您确实在 MySQL 中使用 FROM_UNIXTIME(time),请确保将时间戳除以 1000。

【讨论】:

    【解决方案2】:

    您可以尝试使用 datepicker 中的 dateFormat 选项

    $('#date-picker').datepicker({
        dateFormat : 'yy-mm-dd'
    });
    

    如果您想在视图中提供自定义格式,您可能需要在插入数据库之前将日期转换为 mysql 格式。 `

    $insertDate  = date("Y-m-d",strtotime($date))` 
    

    【讨论】:

      【解决方案3】:

      Jquery UI 日期选择器还有一个本地解析方法,您可以使用它来将字符串更改为日期。该字符串需要已正确格式化才能正常工作。

      $.datepicker.parseDate( "yy-mm-dd", "2007-01-26" );
      

      【讨论】:

        【解决方案4】:

        还有一种更简单的方法从

        下载文件 jquery-ui.js

        http://code.jquery.com/ui/1.10.4/jquery-ui.js

        转到第 3041 行

        dateFormat: "mm/dd/yy",
        

        将其更改为您想要的结果,即 yy/mm/dd 并完成

        dateFormat: "yy/mm/dd/",
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-19
          • 2013-05-29
          • 2016-06-03
          • 1970-01-01
          相关资源
          最近更新 更多