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