la actualización de wpdb agrega que la marca de tiempo actual no funciona


10

Entonces, usando la actualización $ wpdb-> para agregar algunos datos a una tabla personalizada, tratando de agregar la marca de tiempo actual pero no está guardando las cosas correctas (0000-00-00 00:00:00 esto se guarda).

código de resumen

  $wpdb->update('mytable',
      array(
          'value' => 'hello world', 
          'edit'  => date("Y-m-d h:i:s") //saves 0000-00-00 00:00:00
      ),
      array(
          'option_name' => 'the row'
      ), 
      array('%s, %s')
  );

Prueba:date( "Y-m-d h:i:s", strtotime( time() );
Sormano

@Sormano time()devuelve un número entero, no una cadena.
fuxia

1
Tienes razón, usó strtotime () muchas veces ... código correcto:date( "Y-m-d h:i:s", time() );
Sormano

sigue guardando 0000-00-00 00:00:00 .... db col ( editmarca de tiempo NO NULL DEFAULT '0000-00-00 00:00:00')
user759235

descubrió que el problema% d debería ser% s. pero veo que ahorra el tiempo del servidor, no la zona horaria actual
user759235

Respuestas:


14

Parecía haber resuelto todo menos el problema con el tiempo:

descubrió que el problema% d debería ser% s. pero veo que ahorra la hora del servidor, no la zona horaria actual

WordPress tiene una serie de funciones relacionadas con la fecha / hora . En este caso, parece que lo que necesita es current_time(), que ...

Devuelve la hora local actual del blog en uno de dos formatos, ya sea el formato de tipo de datos de marca de tiempo de MySQL (es decir, AAAA-MM-DD HH: MM: SS) o el formato de marca de tiempo de Unix (es decir, época).

Entonces, lo que debe necesitar es:

$wpdb->update(
      'mytable',
      array(
          'value' => 'hello world', 
          'edit'  => current_time( 'mysql' )
      ),
      array(
          'option_name' => 'the row'
      ), 
      array('%s, %s')
);
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.