From 1829c6febc6962fafc8a69a3fdbc6df18002dbdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E6=9E=9C=E5=B1=B1=E5=A4=A7=E5=9C=A3?= Date: Fri, 15 Nov 2024 09:43:47 +0000 Subject: [PATCH] chore: remote comments in spec.ts --- packages/runtime-dom/src/directives/vModel.ts | 6 ++++-- packages/shared/src/general.ts | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/runtime-dom/src/directives/vModel.ts b/packages/runtime-dom/src/directives/vModel.ts index 54271604a..ce9922033 100644 --- a/packages/runtime-dom/src/directives/vModel.ts +++ b/packages/runtime-dom/src/directives/vModel.ts @@ -8,6 +8,7 @@ import { } from '@vue/runtime-core' import { addEventListener } from '../modules/events' import { + formatDateStamp, invokeArrayFns, isArray, isSet, @@ -64,7 +65,8 @@ export const vModelText: ModelDirective< domValue = domValue.trim() } if (castToTimeStamp) { - domValue = new Date(domValue).getTime() + new Date('2024-03-15 16:49:20'.replace(/-/g, '/')) + domValue = formatDateStamp(domValue) } else if (castToNumber) { domValue = looseToNumber(domValue) } @@ -116,7 +118,7 @@ export const vModelText: ModelDirective< return } if (number && (el.type === 'date' || el.type === 'datetime-local')) { - if (new Date(el.value).getTime() === value) { + if (formatDateStamp(el.value) === value) { return } } diff --git a/packages/shared/src/general.ts b/packages/shared/src/general.ts index 9c6a23132..d0876698b 100644 --- a/packages/shared/src/general.ts +++ b/packages/shared/src/general.ts @@ -217,3 +217,10 @@ export function genCacheKey(source: string, options: any): string { ) ) } + +export function formatDateStamp(dateStr: string): number { + // Handle iOS compatibility issue by replacing - with / + // 2024-11-15T12:37' => 2024/11/15 12:37' + const normalizedDateStr = dateStr.replace(/-/g, '/').replace('T', ' ') + return new Date(normalizedDateStr).getTime() +}