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

オープン
#31,600 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
74/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
typescript
領域
frontend

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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).

主要言語
TypeScript
スター
52.7k
フォーク
13.3k
平均マージ
2日 21時間
マージ済み PR(30日)
65

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ionic-team/ionic-framework のほかの issue

ionic-team/ionic-framework の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。