atualização wpdb adicionar carimbo de data / hora atual não está funcionando

10

Portanto, use o $ wpdb-> update para adicionar alguns dados a uma tabela personalizada, tentando adicionar o carimbo de data / hora atual, mas não está salvando o material correto (0000-00-00 00:00:00, isso é salvo).

código de visão geral

  $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')
  );
user759235
fonte
Tente:date( "Y-m-d h:i:s", strtotime( time() );
Sormano
@Sormano time()retorna um número inteiro, não uma string.
fuxia
11
Você está certo, usou strtotime () muitas vezes ... código certo:date( "Y-m-d h:i:s", time() );
Sormano
ainda salvando 0000-00-00 00:00:00 .... db col ( edittimestamp NOT NULL DEFAULT '0000-00-00 00:00:00')
user759235 9/14
encontrou que o problema% d deveria ser% s. mas vejo que ele salva o tempo do servidor e não o fuso horário atual
user759235

Respostas:

14

Você parecia ter resolvido tudo, menos o problema com o tempo:

encontrou que o problema% d deveria ser% s. mas vejo que economiza o tempo do servidor e não o fuso horário atual

O WordPress possui várias funções relacionadas a data / hora . Nesse caso, parece que você precisa current_time(), o que ...

Retorna a hora local atual do blog em um de dois formatos, o formato de tipo de dados de registro de data e hora do MySQL (por exemplo, AAAA-MM-DD HH: MM: SS) ou o formato de registro de data e hora do Unix (por exemplo, época).

Então, o que você precisa é:

$wpdb->update(
      'mytable',
      array(
          'value' => 'hello world', 
          'edit'  => current_time( 'mysql' )
      ),
      array(
          'option_name' => 'the row'
      ), 
      array('%s, %s')
);
s_ha_dum
fonte