pembaruan wpdb menambahkan timestamp saat ini tidak berfungsi


10

Jadi menggunakan pembaruan $ wpdb-> untuk menambahkan beberapa data ke tabel khusus, mencoba menambahkan stempel waktu saat ini tetapi tidak menyimpan hal yang benar (0000-00-00 00:00:00 ini disimpan).

kode ikhtisar

  $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')
  );

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

@Ormano time()mengembalikan bilangan bulat, bukan string.
fuxia

1
Anda benar, menggunakan strtotime () berkali-kali ... kode yang benar:date( "Y-m-d h:i:s", time() );
Sormano

masih menghemat 0000-00-00 00:00:00 .... db col ( edittimestamp TIDAK NULL DEFAULT '0000-00-00 00:00:00')
user759235

menemukan masalah% d harus berupa% s. tapi saya melihat bahwa itu menghemat waktu server bukan zona waktu saat ini
user759235

Jawaban:


14

Anda tampaknya telah menyelesaikan segalanya kecuali masalah waktu:

menemukan masalah% d harus berupa% s. tapi saya melihat bahwa itu menghemat waktu server bukan zona waktu saat ini

WordPress memiliki sejumlah fungsi terkait tanggal / waktu . Dalam hal ini, sepertinya yang Anda butuhkan adalah current_time(), yang ...

Mengembalikan waktu lokal blog saat ini dalam salah satu dari dua format, baik format tipe data stempel waktu MySQL (yaitu YYYY-MM-DD HH: MM: SS) atau format timestamp Unix (mis. Zaman).

Jadi yang Anda butuhkan adalah:

$wpdb->update(
      'mytable',
      array(
          'value' => 'hello world', 
          'edit'  => current_time( 'mysql' )
      ),
      array(
          'option_name' => 'the row'
      ), 
      array('%s, %s')
);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.