Drupal 7 - 如何将unix时间戳插入数据库

时间:2011-09-10 21:40:17

标签: database drupal unix timestamp

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');

3 个答案:

答案 0 :(得分:3)

PHP函数time()返回当前的UNIX时间戳。相当于strtotime(“现在”)。 另外,如果要在数据库中插入当前时间戳,可以使用默认选项CURRENT_TIMESTAMP在数据库中创建字段作为TIMESTAMP,或者甚至直接在SQL中创建my_time_stamp_field = NOW()。

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

希望它有所帮助。

答案 1 :(得分:1)

只想提供更多有关purplerice评论的详细信息。

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

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();

答案 2 :(得分:1)

我知道这是一个旧的,但如果其他人被困在这里,也许我可以帮助解决另一个问题:

MySQL时间戳必须格式化为:

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