【问题标题】:Mysql format date to insert to tableMysql格式日期插入表
【发布时间】:2015-11-14 19:32:12
【问题描述】:

我需要格式化并将日期插入到日期时间类型的 mysql 表中,我是从 php.ini 执行此操作的。

声明如下

$timestamp ="22-11-2015+00:00:00";
$mysqltime = date ("d-m-Y H:i:s", $timestamp);

但是当我插入表格时,日期是错误的,它显示31-12-1969 19:00:22

可能是什么问题?

【问题讨论】:

  • 你在那个日期没有时间,这是时区偏移量

标签: php mysql


【解决方案1】:

应该是

$timestamp ="22-11-2015+00:00:00";
$mysqltime = date ("d-m-Y H:i:s", strtotime($timestamp));

因为date 期望它的第二个参数是一个数字,特别是自 1970 年 1 月 1 日午夜以来的秒数。

【讨论】:

  • 您好,感谢您的回答,现在查询看起来没问题 insert into TABLE values('imo','remote','cam1','22-11-2015 00:00:00','NULL','NULL','RECOG','test.jpg') ,但是当我查看表格时,我可以通过 phpmyadmin 看到日期时间列 0000-00-00 00:00:00
  • 运行上面的代码,我得到01-01-1970 01:00:00。这是为什么呢?
  • @HasseBjörk 因为它没有正确转换日期,如果您的日期格式不是'Y-m-d H:i:s',您应该使用date_create_from_format 函数而不是strtotime 并说明您正在使用的实际格式
【解决方案2】:

日期函数需要一个整数时间戳作为第二个参数。

这个 MSQL 插入语句可以正常工作:

INSERT INTO mytable (birthday) ('2015-11-22 00:00:00')

如果您在 PHP 中使用数据库类并且您正在调用的函数使用 PHP 日期对象,那么您必须使用 date() 函数构造 PHP 日期对象。

或者,如果您想在将字符串发送到要插入的数据库之前使用 PHP 代码重新格式化 PHP 中的日期,那么我认为您会使用 strtodate 来获取 PHP 日期对象,然后使用 date()

$phpdate = strtodate('d-m-Y H:i:s', '22-11-2015 00:00:00')
$dateformysql = date('Y-m-d H:i:s', $phpdate)
databaseclass.dotheinsert($mysqldate)

【讨论】:

    【解决方案3】:

    这应该有效,但对我不起作用!

    $timestamp ="22-11-2015+00:00:00";
    $mysqltime = date ("d-m-Y H:i:s", strtotime($timestamp));
    

    我相信这是因为我的国家标准格式(LC_TIME)是“Y-m-d”而不是“d-m-Y”。然而,这完美地工作:

    $timestamp ="22-11-2015+00:00:00";
    // The '+' sign needs to be escaped!!
    $time = date_create_from_format( "d-m-Y\+H:i:s", $timestamp);
    $mysqltime = $time->format( 'd-m-Y H:i:s' );
    

    另一方面,MySQL 使用日期格式“YYYY-MM-DD”作为标准。正确的格式字符串应该是:

    $mysqltime = date ("Y-m-d H:i:s", strtotime($timestamp));
    // or second option
    $mysqltime = $time->format( 'Y-m-d H:i:s' );
    

    【讨论】:

      【解决方案4】:

      我认为正确的格式是:

      $mysqltime = date_format ($timestamp,"d-m-Y H:i:s");
      

      让我知道这是否有效

      【讨论】:

        猜你喜欢
        • 2012-08-20
        • 2012-04-12
        • 2018-02-26
        • 2021-09-30
        • 2016-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多