【问题标题】:How I can save the moment as timestamp when these lines runs?当这些行运行时,我如何将时刻保存为时间戳?
【发布时间】:2015-06-23 00:23:51
【问题描述】:
  $status = db_insert('errors')
            ->fields( array(
              'timestamp' => ???????,
              'wid' => $wid,))
            ->execute();

我想在这行代码运行时保存时间戳,这将是这行代码运行的那一刻。有人可以帮我解决这个问题吗?

【问题讨论】:

  • time() 函数应该为您返回一个时间戳,然后您可以将其存储在一个变量中并将其设置为数组中时间戳的值
  • timestamp 列的数据类型是什么?
  • 数据类型是 int... 它必须是什么?
  • 如果是int,那么你可以使用php time()函数。或者更好的是数据类型为datetimetimestamp,您将拥有date('Y-m-d H:i:s'),这将使您的查询更容易,同时使用日期范围等对表格进行选择。
  • 当我在没有时间戳的情况下运行我的代码时,它可以完美运行,但是当我插入 time() 或 REQUEST_TIME 时,我的代码什么也不做,我不知道为什么!!!timestamp 是'int'

标签: mysql sql database drupal timestamp


【解决方案1】:

如果您确实想要保存该行的那一刻,请使用time()

$status = db_insert('errors')
  ->fields(array(
    'timestamp' => time(),
    'wid' => $wid,
  ));

如果您想节省几个处理器滴答,并且该值可以接受,您可以使用 Drupal 的 REQUEST_TIME 常量(在每个请求开始时设置为当前时间戳)。

$status = db_insert('errors')
  ->fields(array(
    'timestamp' => REQUEST_TIME,
    'wid' => $wid,
  ));

【讨论】:

  • 当我在没有时间戳的情况下运行我的代码时,它可以完美运行,但是当我插入 time() 或 REQUEST_TIME 时,我的代码什么也不做,我不知道为什么!!!timestamp 是'int'
  • 你错过了对execute()的调用,除了代码没问题
  • 如果我在没有 time() 的情况下运行它会插入值如果我放 time() 没有插入任何内容
  • 您需要更加具体。 “不要跑”意味着什么
  • 我不知道你希望我说什么——你说列是一个整数,而 time() 返回一个整数。它必须有效,否则您的部分解释是错误的
猜你喜欢
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多