une recherche entre deux dates dans yii2
Une date peut être représenté dans différents formats. Une table elle-même ressemble à ceci:
book varchar(250) NOT NULL,
date INT NOT NULL
Maintenant, mon problème est que je ne peux pas mettre en œuvre la recherche dans la gamme entre les deux dates.
Par exemple, il y a 5 livres avec des dates différentes, mais la date de début commence
au 31/12/14
et la date finale est 31/02/15
. Ainsi, lorsqu'un utilisateur sélectionne une plage entre ces dates, il doit fournir tous les livres de cette plage de dates.
Est-il possible de le faire dans Yii2? Je n'ai rien trouvé jusqu'à présent
Mise à JOUR
Je me suis mise en œuvre d'un filtre personnalisé qui n'appartient pas à GridView
et il semble que dans une seule zone à l'extérieur de la table.
Il ressemble à ceci:
<div class="custom-filter">
Date range:
<input name="start" />
<input name="end" />
Book name:
<input name="book" />
</div>
OriginalL'auteur Yang | 2015-05-19
Vous devez vous connecter pour publier un commentaire.
Je crois que c'est la réponse dont vous avez besoin:
OriginalL'auteur Leye Odumuyiwa
Si vous obtenez de début et de fin dans le format de date, mais dont la date de votre table de base de données est de type INT, vous devez faire quelque chose comme ceci:
Pas oublier de valider les valeurs de la poste.
OriginalL'auteur pa3py6aka
En supposant que la date stockée sous forme d'entier représente le timestamp unix, vous pouvez en faire un modèle de classe et de les appliquer yii\validateurs\DateValidator sur
start
etend
attributs.Voir plus sur
timestampAttribute
sur cette documentation.OriginalL'auteur Khotim
utilisation Yii2 Active Record et l'accès à des livres entre deux dates comme ça.
Je suppose que vous êtes à l'aide d'active record de classe et que vous avez créé Book.php (nom approprié basé sur le nom de la table) en tant Que fichier de modèle .
ok. vous pouvez convertir une date dans le format requis par la fonction date de php.
vous pouvez appliquer la fonction strtotime() sur les deux $et inférieure $supérieur que vous stockez en tant que int (date)
J'obtiens ce que vous dites, mais je suis en utilisant de mettre en œuvre un filtre personnalisé et après j'appelle
getBookBetweenDates()
j'ai besoin d'afficher les résultats dans une table d'une certaine manière. C'est la questionMise à jour, veuillez jeter un oeil
OriginalL'auteur kamlesh.bar