2011-09-10 20 views
5

Drupal pregunta para novatos. Estoy tratando de insertar la fecha/hora actual en una base de datos SQL como una marca de tiempo de Unix. Está funcionando porque no recibo un error, pero solo inserta el mismo valor cada vez (2147483647). Estoy trabajando en un host local (si eso hace la diferencia) y han intentado lo siguiente, todo fue en vano:Drupal 7 - Cómo insertar la marca de tiempo de Unix en la base de datos

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

Parece que he respondido a mi pregunta. En lugar de cualquiera de esos format_date (....); Utilicé REQUEST_TIME y parece que funciona. – purplerice

+0

formato_fecha (strtotime ('ahora'), 'personalizado', 'Y-m-d H: i: s') probablemente funcione. AAAA-MM-DD no es una sintaxis válida para esa función. –

Respuesta

3

El tiempo de función de PHP() devuelven el valor timestamp UNIX. equivalente con strtotime ("ahora"). También, si desea insertar en la base de datos la marca de tiempo actual, puede crear el campo en la base de datos como TIMESTAMP con la opción predeterminada CURRENT_TIMESTAMP o incluso directamente en SQL escriba my_time_stamp_field = NOW().

también ... si usted tiene una fecha personalizada que puede utilizar mktime() http://www.php.net/manual/en/function.mktime.php La marca de tiempo Unix es un valor entero, en el que se quiere ejemplo una fecha y hora con formato, si este es el caso fecha de uso ("AAAA MM-DD HH: MM: SS ', time()/marca de tiempo unix /).

Espero que ayude.

1

Solo desea proporcionar más detalles con los comentarios de purplerice.

podemos utilizar REQUEST_TIME - Hora de la solicitud actual en segundos transcurrido desde la época 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

Acabo de encontrar en node.module línea 1018, drupal 7.12 usan ** strtotime ** '$ node-> created =! Empty ($ node-> date)? strtotime ($ node-> date): REQUEST_TIME; ' – cww

1

Sé que esto es un viejo, pero si alguien se ha quedado atascado aquí tal vez pueda ayudar con otra solución:

Una marca de tiempo MySQL tiene que ser formateado como:

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