yii2:le formatage de date pour l'affichage
J'ai configuré un champ de date appointment_date comme datetime
champ dans la base mysql.
Dans mon modèle Appointment.php les règles sont définies comme ceci:
public function rules()
{
return [
[['appointment_date','weekdays'], 'safe'],
[['appointment_date'], 'date','format' => 'd-M-yyyy H:m'],
et dans web.php au titre de la composante j'ai mis
'formatter' => [
'defaultTimeZone' => 'UTC',
'timeZone' => 'Asia/Kolkata',
et à mon avis je suis en train de format de la date pour l'affichage comme ceci:
[
Yii::$app->formatter->asDatetime('appointment_date')
],
Maintenant j'obtiens l'erreur -
appointment_date' is not a valid date time value: DateTime::__construct(): Failed to parse time string (appointment_date) at position 0 (a): The timezone could not be found in the database
Array
(
[warning_count] => 1
[warnings] => Array
(
[6] => Double timezone specification
)
[error_count] => 3
[errors] => Array
(
[0] => The timezone could not be found in the database
[11] => Unexpected character
[12] => Double timezone specification
)
Alors que la date stockée dans la base de données est comme : 2015-01-20 11:50:00
Si je ne suis pas le formatage de la date et de simplement maintenir l'attribut dans la vue comme
appointment_date
la date est affichée comme 2015-01-20 11:50:00
Je veux afficher la date 20-01-2015 11:50:00
Si je suis en utilisant le code comme ceci:
[
'attribute'=>'appointment_date',
'format'=>['DateTime','php:d-m-Y H:i:s']
],
Je suis à la date de l'obtention formaté correctement.
Je veux savoir Ce que je fais de mal ici, à l'aide de
Yii::$app->formatter->asDatetime('appointment_date')
Grâce
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est juste une petite faute de frappe. Vous êtes de passage dans une chaîne de caractères dans le
asDateTime
méthode où il a besoin de la valeurdevrait être
Docs: http://www.yiiframework.com/doc-2.0/yii-i18n-formatter.html#asDatetime()-détail
OK c'est aussi simple que cela, j'ai besoin d'utiliser
ou
et ajouter le format dans le composant formateur
et maintenant il fonctionne très bien.
Ma DB type de date est
date
de sorte qu'il est de stocker et de donner la réponse dans "AAAA-JJ-MM" formate.Je l'ai fait en vue (index.php) sans changer la logique de bases de données ou des Données.
initialement, il a été
qui je l'ai changé avec cette-
Il fonctionne très bien pour moi,
Espérons que cela fonctionnera pour quelques les plus nécessiteux.
Mettre le code ci-dessous en vertu de la section du composant dans Project/config/web.php
Où vous montrant date ot datetimein votre grille il suffit d'ajouter ce
Pour La Date
Pour Datetime
Que c'est.Il va travailler pour l'ensemble de votre projet où vous voulez changer la date ou datetime au format.