Skip to content

Commit 8ac1a10

Browse files
committed
fix: サーバー側で時刻を確実に UTC で持つよう修正
1 parent 17676a9 commit 8ac1a10

File tree

3 files changed

+18
-15
lines changed

3 files changed

+18
-15
lines changed

client/src/pages/Project.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ export default function ProjectPage() {
9292
setSubmitLoading(true);
9393

9494
// 日付をISO形式に変換
95-
const startDateTime = new Date(`${data.startDate}T00:00:00.000Z`).toISOString();
96-
const endDateTime = new Date(`${data.endDate}T23:59:59.999Z`).toISOString();
95+
const startDateTime = new Date(`${data.startDate}T00:00:00.000`).toISOString();
96+
const endDateTime = new Date(`${data.endDate}T23:59:59.999`).toISOString();
9797

9898
// range もISO形式に変換
9999
const rangeWithDateTime = data.allowedRanges?.map((range) => ({

server/prisma/schema.prisma

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ model Project {
1818
id String @id @db.VarChar(21)
1919
name String
2020
/// 注: 日付部分のみ利用。時間は考慮しない。
21-
startDate DateTime
21+
startDate DateTime @db.Timestamptz(3)
2222
/// 注: 日付部分のみ利用。時間は考慮しない。
23-
endDate DateTime
23+
endDate DateTime @db.Timestamptz(3)
2424
/// 注: 現在は 1 つのみ設定可能
2525
allowedRanges AllowedRange[]
2626
slots Slot[]
@@ -32,18 +32,18 @@ model Project {
3232
model AllowedRange {
3333
id String @id @default(uuid())
3434
/// 注: 時間部分のみ利用。日付は考慮しない。
35-
startTime DateTime
35+
startTime DateTime @db.Timestamptz(3)
3636
/// 注: 時間部分のみ利用。日付は考慮しない。
37-
endTime DateTime
37+
endTime DateTime @db.Timestamptz(3)
3838
projectId String
3939
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
4040
}
4141

4242
/// あるゲストが参加可能な時間帯の 1 つ。日を跨がない。
4343
model Slot {
4444
id String @id @default(uuid())
45-
from DateTime
46-
to DateTime
45+
from DateTime @db.Timestamptz(3)
46+
to DateTime @db.Timestamptz(3)
4747
projectId String
4848
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
4949
guestId String

server/src/routes/projects.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,13 @@ router.post("/", validateRequest({ body: projectReqSchema }), async (req, res) =
2727
data: {
2828
id: nanoid(),
2929
name: data.name,
30-
startDate: data.startDate,
31-
endDate: data.endDate,
30+
startDate: new Date(data.startDate),
31+
endDate: new Date(data.endDate),
3232
allowedRanges: {
33-
create: data.allowedRanges,
33+
create: data.allowedRanges.map(range => ({
34+
startTime: new Date(range.startTime),
35+
endTime: new Date(range.endTime),
36+
})),
3437
},
3538
hosts: {
3639
create: {
@@ -206,13 +209,13 @@ router.put(
206209
? { name } // ゲストがいれば名前だけ
207210
: {
208211
name,
209-
startDate,
210-
endDate,
212+
startDate: startDate ? new Date(startDate) : undefined,
213+
endDate: endDate ? new Date(endDate) : undefined,
211214
allowedRanges: {
212215
deleteMany: {}, // 既存削除
213216
create: allowedRanges?.map((r) => ({
214-
startTime: r.startTime,
215-
endTime: r.endTime,
217+
startTime: new Date(r.startTime),
218+
endTime: new Date(r.endTime),
216219
})),
217220
},
218221
},

0 commit comments

Comments
 (0)