mise à jour wpdb ajouter l'horodatage actuel ne fonctionne pas

10

Donc, en utilisant la mise à jour $ wpdb-> pour ajouter des données à une table personnalisée, en essayant d'ajouter l'horodatage actuel, mais cela ne sauvegarde pas les bonnes choses (0000-00-00 00:00:00, cela est enregistré).

code de présentation

  $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
la source
Essayez:date( "Y-m-d h:i:s", strtotime( time() );
Sormano
@Sormano time()renvoie un entier, pas une chaîne.
fuxia
1
Vous avez raison, avez utilisé strtotime () à plusieurs reprises ... bon code:date( "Y-m-d h:i:s", time() );
Sormano
enregistrement en cours 0000-00-00 00:00:00 .... db col ( edithorodatage NON NULL PAR DÉFAUT '0000-00-00 00:00:00')
user759235
a trouvé que le problème% d devait être% s. mais je vois que cela économise le temps du serveur et non le fuseau horaire actuel
user759235

Réponses:

14

Vous sembliez avoir tout résolu sauf le problème du temps:

a trouvé que le problème% d devait être% s. mais je vois que cela économise le temps du serveur et non le fuseau horaire actuel

WordPress a un certain nombre de fonctions liées à la date / heure . Dans ce cas, cela ressemble à ce dont vous avez besoin current_time(), ce qui ...

Renvoie l'heure locale actuelle du blog dans l'un des deux formats, soit le format du type de données d'horodatage de MySQL (c'est-à-dire AAAA-MM-JJ HH: MM: SS) ou le format d'horodatage Unix (c'est-à-dire l'époque).

Donc, ce dont vous avez besoin, c'est:

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