【问题标题】:Drupal 7 - How to insert unix timestamp into databaseDrupal 7 - 如何将 unix 时间戳插入数据库
【发布时间】:2011-11-14 13:10:45
【问题描述】:

Drupal 新手问题。我正在尝试将当前日期/时间作为 unix 时间戳插入 SQL 数据库。它的工作原理是我没有收到错误,但它每次都插入相同的值(2147483647)。我正在使用本地主机(如果这有所不同)并尝试了以下方法,但均无济于事:

format_date(strtotime('now'), 'custom', 'YYYY-MM-DD 00:00:00'); 

format_date(time(), 'custom', 'YYYY-MM-DD HH:MM:SS'); 

format_date(mktime(), 'custom', 'YYYY-MM-DD HH:MM:SS');

【问题讨论】:

  • 看来我回答了我的问题。而不是任何那些 format_date(....);我使用了 REQUEST_TIME,它似乎有效。
  • format_date(strtotime('now'), 'custom', 'Y-m-d H:i:s') 可能会起作用。 YYYY-MM-DD 不是该函数的有效语法。

标签: database drupal unix timestamp


【解决方案1】:

PHP 函数 time() 返回当前的 UNIX 时间戳。等效于 strtotime("now")。 另外,如果您想在数据库中插入当前时间戳,您可以使用默认选项 CURRENT_TIMESTAMP 将数据库中的字段创建为 TIMESTAMP,甚至直接在 SQL 中编写 my_time_stamp_field = NOW()。

另外...如果您有自定义日期,您可以使用 mktime() http://www.php.net/manual/en/function.mktime.php unix 时间戳是一个 int 值,在您的示例中,您需要一个格式化的日期时间,如果是这种情况,请使用 date('YYYY-MM-DD HH:MM:SS', time()/unix timestamp/)。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    只是想用紫米的cmets提供更多的细节。

    我们可以使用 REQUEST_TIME - 自 Unix 纪元以来当前请求的时间(以秒为单位)。

    http://api.drupal.org/api/drupal/includes!bootstrap.inc/constant/REQUEST_TIME/7

        $inserted_val['other_value'] = 'other value';
        $inserted_val['last_update_date'] = REQUEST_TIME;
        db_insert('tablename')->fields($insert_fields)->execute();
    

    【讨论】:

    • 刚刚在 node.module 第 1018 行发现,drupal 7.12 他们使用 strtotime $node->created = !empty($node->date) ? strtotime($node->date) : REQUEST_TIME;
    【解决方案3】:

    我知道这是一个旧的,但如果其他人被困在这里,也许我可以提供另一个解决方案:

    MySQL 时间戳必须格式化为:

    format_date(time(), 'custom', 'Y-m-d 00:00:00')
    

    【讨论】:

      猜你喜欢
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 2016-03-06
      • 1970-01-01
      相关资源
      最近更新 更多