bug: ion-datetime presentation="date" emits `YYYY-MM-DDTHH:mm:00` (the current wall-clock time) instead of a date-only value

Ouverte
#31,600 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
74/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
typescript
Domaine
frontend

Piste de recherche

Start in core/src/components/datetime/datetime.tsx and trace how todayParts and defaultParts feed the selected date; then inspect convertDataToISO in utils/manipulation.ts. Check the date-only behavior against the documented presentation="date" format and run the relevant datetime tests. Done means selecting a day emits YYYY-MM-DD without a time.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

package: core type: bug
Ionic Framework Version

v9.x (9.0.7)

Current Behavior

<ion-datetime presentation="date"> with no initial value: clicking a day emits

ionChange detail.value = "2026-09-01T16:19:00"

at 16:19 local time, and datetime.value reads the same string. The time part is whatever the clock showed when the component initialised.

Where it comes from (core/src/components/datetime/datetime.tsx):

  • L1529 this.todayParts = parseDate(getToday()) — getToday() (utils/data.ts L27–46) returns a full ISO timestamp, so the parts carry hour/minute;
  • L1534 defaultParts is derived from them, and selecting a day keeps those hour/minute fields;
  • convertDataToISO (utils/manipulation.ts L37–40) appends T${hour}:${minute}:00 whenever hour !== undefined, regardless of presentation.

A backend DateOnly / date column rejects the value, and the same picker opened on two days produces two different strings for the same date.

Expected Behavior

presentation="date" emits YYYY-MM-DD (the format the docs describe for a date-only picker and the one min/max accept).

Steps to Reproduce
  1. <ion-datetime presentation="date"></ion-datetime> with no value.
  2. Click any enabled day.
  3. Read event.detail.value in ionChange.
Ionic Info

@ionic/core 9.0.7, Chromium 142 (Playwright headless).

Langage dominant
TypeScript
Étoiles
52.7k
Forks
13.3k
Merge moyen
3 j 4 h
PR mergées (30 j)
72

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de ionic-team/ionic-framework

Toutes les issues de ionic-team/ionic-framework

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.