Le souci est que 2020-00-00 n'est pas une date valide du point de vue de MySQL, et probablement même pas selon le format ISO…
Cependant, ce dernier explique aussi comment doivent se comporter les ordinateurs face aux "dates partielles" (2020, 2020-06, 2020-W25) : la date représente le premier jour de la période concernée (2020-01-01 respectivement 2020-06-01, 2020-06-15). Donc pour ne pas perdre ce comportement sur le début, tu peux laisser les 01.
Si en revanche cela doit désigner une période, pas vraiment de choix : il faut que tu aies de quoi spécifier la fin.
Une autre possibilité serait de surcharger le bloc d'affichage du type datetime pour ajouter des options vides pour le mois et le jour, et prévoir un DataTransformer pour gérer les cas où toutes les parties ne sont pas renseignées (et calculer la fin de la période en fonction).
Je vois ce que tu veux dire. il était impossible de mettre des zéros j'ai donc modifier les options de ma bdd en enlevant ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE,
Par exemple en mettant 1700-00-00 le retour dans le navigateur est 30/11/1699.
Comment distingue t-on le 1er janvier 2020 (2020-01-01) de l'année 2020 (2020-01-01) ?
Et que veux-tu dire par surcharger le bloc d'affichage du type datetime ?
Comment distingue t-on le 1er janvier 2020 (2020-01-01) de l'année 2020 (2020-01-01) ?
Au niveau du traitement du formulaire, tu ne peux le faire à ma connaissance que dans un DataTransformer personnalisé si tu utilises le DateType, parce que c'est à mon avis le seul endroit où tu as accès à ce que l'utilisateur a vraiment rentré (et donc 2020, 2020-06 ou 2020-06-17). Reste à voir si tu n'as pas besoin d'un type personnalisé, je ne sais pas s'il est possible de supplanter le DataTransformer originel de DateType ni s'il est possible de lui faire accepter de n'avoir qu'une partie des champs de remplis.
Quitte à me répéter : tu vas enregistrer 2020-01-01 pour toutes les variantes 2020, 2020-01 et 2020-01-01, il te faut donc une date de fin de période qui te permettra de faire tes calculs et manipulations plus facilement. Mais rien ne t'empêche de calculer cette date en même temps que tu regardes si tu n'as qu'une année, qu'un mois ou qu'un jour.
Semper78Fidelis a écrit:
Et que veux-tu dire par surcharger le bloc d'affichage du type datetime ?
Symfony gère l'affichage des différents éléments de formulaire avec des blocs Twig que tu peux surcharger en cas de besoin.
Semper78Fidelis a écrit:
l'option vide engendre toujours les 01 ou 00 ?
Je ne suis pas certain de comprendre la question — pour autant que c'en soit une.
je comprends mieux, les dates c'est vraiment compliqué
Exactement je cherche à donner la possibilité de remplir ce qu'on peut dans la date
soit 2020-xx-xx mais aussi xxxx-05-xx etc... toutes possibilités et combler les trous
la BDD peut rentrer les zéros mais php ne peut pas l’interpréter
c'est très complexe, je me demande même s'il ne faut pas enlever le format datetime du champ et que je crée mon propre format mais avec x conditions ...
Ah, alors attention : une fréquence n'est pas une date, mais l'inverse est possible (une date est finalement quelque chose qui n'apparaît qu'une fois), donc peut-être que ton propre format serait plus pertinent. Là, tu me fais penser aux crontabs et leur format * * * * * (minute heure [jour du mois] mois [jour de la semaine]).
oui c'est très complexe, il faut définir qu'il y a d = entre 0 et 31 si m = 1 3 5 etc... ça serait super intéressant de le faire mais c'est le temps qui me manque ... ça m'étonne de ne pas trouver de bundle concernant les dates incomplètes
la chance sourit aux audacieux
problème envoyer une date incomplète en BDD
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
la chance sourit aux audacieux
la chance sourit aux audacieux
la chance sourit aux audacieux
la chance sourit aux audacieux