2015-10-15 12 views
6

nel fuso orario php.ini è UTC. il fuso orario del sistema è UTC. yii defaultTimeZone è UTC. Ma il mio attributo datetime viene convertito nel mio fuso orario "Asia/Kolkata" prima di salvare in db.Problema in yii2 formattatore fuso orario

Ad esempio: ora UTC di 12: 00hrs il mio ingresso 17.30 quello che mi aspetto in dB è 12: 00hrs e in considerazione 17.30 Ma quello che ho ottenuto in dB è 17: 30 ore e in vista ho avuto 23: 00hrs .

web.php:

'formatter' => 
     [ 
      'class' => 'yii\i18n\Formatter', 
      'dateFormat' => 'php:d-m-Y', 
      'datetimeFormat' => 'php:d-m-Y H:i a', 
      'timeFormat' => 'php:H:i A', 
      'timeZone' => 'Asia/Kolkata', 
     ], 
+1

Ho lo stesso problema – Bloodhound

risposta

1

È possibile scegliere di salvare un valore timestamp specifico utilizzando un formato predefinito. Dunque, prendiamo che tu abbia definito il tuo campo datetime nel backend come INTEGER e vuoi salvarlo come un intero. È possibile impostare il comportamento come questo

public function behaviors() 
{ 
    return [ 
     'timestamp' => [ 
      'class' => TimestampBehavior::className(), 
      'attributes' => [ 
       ActiveRecord::EVENT_BEFORE_INSERT => 'creation_time', 
       ActiveRecord::EVENT_BEFORE_UPDATE => 'update_time', 
      ], 
      'value' => function() { return date('U'); // unix timestamp }, 
     ], 
    ]; 
} 

È possibile configurare yii\i18n\formatter per controllare i formati di data a livello mondiale per la visualizzazione a quelle locali. È possibile impostare qualcosa di simile nel file di configurazione che è possibile accedere attraverso

'formatter' => 
     [ 
      'class' => 'yii\i18n\Formatter', 
      'dateFormat' => 'php:d-m-Y', 
      'datetimeFormat' => 'php:d-m-Y H:i a', 
      'timeFormat' => 'php:H:i A', 
      'defaultTimeZone' OR 'timeZone' => 'Asia/Calcutta', //global date formats for display for your locale. 
     ], 

Leggere questo Link e anche fare riferimento Doc.

Sperare che funzioni.

+0

Voglio risparmiare tempo in formato UTC nel database. –