2011-09-10 12 views
5

Drupal newbie question。現在の日付/時刻をUNIXのタイムスタンプとしてSQLデータベースに挿入しようとしています。それは私がエラーを取得していないが、毎回同じ値を挿入するだけで動作している(2147483647)。私は無駄にすべて、ローカルホスト上で働いている(それが違いを作る場合)、以下のことを試してみました:Drupal 7 - データベースにunixタイムスタンプを挿入する方法

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

私は私の質問に答えたようです。それらのformat_date(....)の代わりに。私はREQUEST_TIMEを使用しましたが、うまくいくようです。 – purplerice

+0

format_date(strtotime( 'now')、 'custom'、 'Y-m-d H:i:s')がおそらく動作します。 YYYY-MM-DDはその関数の有効な構文ではありません。 –

答えて

3

PHP関数時間を()現在のUNIXタイムスタンプを返します。 strtotime( "now")と同じです。 また、現在のタイムスタンプをデータベースに挿入する場合は、デフォルトオプションCURRENT_TIMESTAMPのTIMESTAMPとしてデータベースにフィールドを作成することも、SQLで直接my_time_stamp_field = NOW()を作成することもできます。また

...カスタムの日付を持っている場合、これはケースの使用日がある場合は、http://www.php.net/manual/en/function.mktime.php UNIXタイムスタンプは、int型の値であるあなたは一例では、あなたが、フォーマットされた日時をしたい関数mktime()を使用することができます( 'YYYY- MM-DD HH:MM:SS '、時刻()/ unixタイムスタンプ /)。

希望します。

1

purplericeのコメントで詳細を提供したいだけです。

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

node.module行1018、drupal 7.12で見つかった** strtotime ** '$ node-> created =!empty($ node-> date)? strtotime($ node-> date):REQUEST_TIME; ' – cww

1

私は、これは古いものである知っているが、他の誰かがここで立ち往生している場合は、多分私は別の解決策を支援することができます:

MySQLのタイムスタンプはとしてフォーマットする必要があります。

format_date(time(), 'custom', 'Y-m-d 00:00:00') 
関連する問題