Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UTCにしてしまっているところを全部JSTにした #245

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Pugma
Copy link
Collaborator

@Pugma Pugma commented May 12, 2024

close #70
DB的には

  • UTC管理で表示だけ直す
  • そもそもJSTだけで値をいれる

だとどちらのほうがいいんでしたっけ?

@Pugma Pugma requested review from mehm8128 and ras0q May 12, 2024 03:43
@mehm8128
Copy link
Contributor

DBの話は分からんのでこっちでも一応召喚 @ras0q

@ras0q
Copy link
Member

ras0q commented May 12, 2024

バックエンドもまだ対応しきれてないのでなんとも言えないんですが文字列連結じゃなくてDateにパースしてJSTを設定するとかがいいかもです
traPtitech/traPortfolio#148

@motoki317
Copy link
Member

motoki317 commented May 12, 2024

細かいかもですが、必ずしもユーザーのコンピュータがJSTを利用しているとは限らないので、その場合はまずいかも?

今更かもですが、通信上やDB上の表現は時刻の文字列でなく、全部unix timestamp (seconds)の数字にしたほうがややこしい事が少なくなるかもしれません
JSだけtoDate()やnew Date(number)が標準的なsecondsではなくmillisecondsになるのでアレなんですが、そこだけ気をつければ
気をつければどちらでも良いかとなったので好きな方で

@Pugma
Copy link
Collaborator Author

Pugma commented May 12, 2024

MDN: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date
を見てみたところ、直接jsのdate型にparseするのはよくなさそう?って感じです
確か、mariadbとかもdatetime型はstringのformat指定版みたいな扱いだった記憶があるので、文字列でAPIに流し込んでもいいんじゃないかなという気がしています…

Date.parse()
日付を表す文字列を解釈して、地方時で 1970 年 1 月 1 日 00:00:00 から経過したミリ秒数を表す数値を返します。うるう秒は無視します。

メモ: ブラウザーごとに動作が異なり一貫性がないため、 Date.parse で文字列を解釈しないことを強く推奨します。

@mehm8128
Copy link
Contributor

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

対応するよう明示的に指定されているのは ISO 8601 形式 (YYYY-MM-DDTHH:mm:ss.sssZ) のみです。

って書いてあるので、この形式でやるなら大丈夫そうです

@ras0q
Copy link
Member

ras0q commented May 27, 2024

フロントエンドではブラウザのTZに従って時刻を表示して、APIに渡すときはUTC(Date.toISOString())で渡してもらうのがよさそうです?

new Date()
Mon May 27 2024 12:08:09 GMT+0900 (日本標準時)

new Date().toISOString()
'2024-05-27T03:08:11.325Z'

new Date('2024-05-27T03:08:11.325Z')
Mon May 27 2024 12:08:11 GMT+0900 (日本標準時)

https://zenn.dev/yoonchulkoh/articles/cb88d9a25aec8d

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

時刻表示を日本時間にする
4 participants