Moment: MySQL DateTimeκ³Ό moment.utz에 λŒ€ν•œ ν˜Όλ™

에 λ§Œλ“  2016λ…„ 04μ›” 18일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: moment/moment

여기에 μž‘μ€ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€: https://jsfiddle.net/vrdhcuey/1/

λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μš”μ²­ν•  λ•Œ MySQL λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 2016-04-22T16:00:00.000Z 의 DATETIME을 λ‹€μ‹œ μ–»μŠ΅λ‹ˆλ‹€(μ΄ˆκΈ°μ—λŠ” κΈ°λ³Έ UTC μ‹œκ°„λŒ€λ‘œ μ„€μ •λ˜μ—ˆμ§€λ§Œ 유럽/더블린을 μ‹œκ°„λŒ€λ‘œ μ„€μ •ν•˜μ—¬ ν…ŒμŠ€νŠΈν•¨). 즉, μ’…λ£Œ λ‚ μ§œ μ‹œκ°„ 우리의 λͺ©ν‘œλŠ” 4μ›” 22일 κΈˆμš”μΌ μ˜€ν›„ 4μ‹œμž…λ‹ˆλ‹€. μ΄λ²€νŠΈλŠ” 주어진 λ‚ μ§œμ˜ μ˜€ν›„ 4μ‹œμ— μ’…λ£Œλ  수 μžˆμ§€λ§Œ ν•΄λ‹Ή λ‚ μ§œλŠ” GMT λ˜λŠ” BST에 ν•΄λ‹Ήν•  수 μžˆλ‹€λŠ” 말만 ν•˜λ©΄ μ‹€μ œλ‘œλŠ” μ‹œκ°„λŒ€κ°€ μ—†μŠ΅λ‹ˆλ‹€.

제곡된 ν…ŒμŠ€νŠΈμ—μ„œ μ§€κΈˆκ³Ό ν•΄λ‹Ή λ‚ μ§œ μ‹œκ°„ μ‚¬μ΄μ˜ 기간을 μ–»κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 항상 1μ‹œκ°„ μ‰¬λŠ” μ‹œκ°„μž…λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” μœ μΌν•œ 방법은 datetime λ¬Έμžμ—΄μ˜ λμ—μ„œ .000Z λ₯Ό μ œκ±°ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. λ‚˜λŠ” λ˜ν•œ moment.tzλ₯Ό μ‚¬μš©ν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ λ™μΌν•œ κ²°κ³Όλ₯Ό μ–»μ—ˆμŠ΅λ‹ˆλ‹€(즉, 이 ν…ŒμŠ€νŠΈμ—μ„œ leftTime4λŠ” μš°λ¦¬κ°€ κΈ°λŒ€ν•˜λŠ” μ˜¬λ°”λ₯Έ λ™μž‘μž…λ‹ˆλ‹€). κ·ΈλŸ¬λ‚˜ λ‚˜λŠ” leftTime2κ°€ κ·ΈλŒ€λ‘œ μž‘λ™ν•˜κΈ°λ₯Ό κΈ°λŒ€ν–ˆμ„ κ²ƒμž…λ‹ˆλ‹€.

λˆ„κ΅¬λ“ μ§€ 이 ν˜Όλž€μ„ ν•΄κ²°ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ μ œκ°€ 여기에 버그λ₯Ό 치고 μžˆμŠ΅λ‹ˆκΉŒ?

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

ISO8601 ν‘œμ€€μ€ Z둜 λλ‚˜λŠ” λ‚ μ§œκ°€ UTC둜 ν•΄μ„λ˜μ–΄μ•Ό ν•œλ‹€κ³  μ§€μ •ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ‹œκ°„μ΄ μ§€λ‚˜λ©΄ UTCμ—μ„œ ν˜„μ§€ μ‹œκ°„μœΌλ‘œ μ‹œκ°„μ„ λ³€ν™˜ν•˜λŠ” μˆœκ°„μ΄ λ°œμƒν•©λ‹ˆλ‹€. 이것이 당신이 1μ‹œκ°„μ˜ νœ΄κ°€λ₯Ό μ–»λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

μˆœκ°„μ΄ Zλ₯Ό λ¬΄μ‹œν•˜λ„λ‘ ν•˜λ €λ©΄(μ‹œκ°„μ„ 둜컬둜 해석) λ‹€μŒμ„ μˆ˜ν–‰ν•˜μ—¬ Zλ₯Ό μ„ νƒν•˜μ§€ μ•ŠλŠ” ν˜•μ‹μ„ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€.

moment('2016-04-22T16:00:00.000Z', 'YYYY-MM-DDTHH:mm:ss.SSS').format()

λ‹€μ–‘ν•œ ꡬ문 뢄석 λͺ¨λ“œμ— λŒ€ν•œ μžμ„Έν•œ 정보가 ν•„μš”ν•˜λ©΄ κ°€μ΄λ“œμ˜ 이 μ„Ήμ…˜μ΄ 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€. http://momentjs.com/guides/#/parsing/local -utc-zone/

λͺ¨λ“  3 λŒ“κΈ€

ISO8601 ν‘œμ€€μ€ Z둜 λλ‚˜λŠ” λ‚ μ§œκ°€ UTC둜 ν•΄μ„λ˜μ–΄μ•Ό ν•œλ‹€κ³  μ§€μ •ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ‹œκ°„μ΄ μ§€λ‚˜λ©΄ UTCμ—μ„œ ν˜„μ§€ μ‹œκ°„μœΌλ‘œ μ‹œκ°„μ„ λ³€ν™˜ν•˜λŠ” μˆœκ°„μ΄ λ°œμƒν•©λ‹ˆλ‹€. 이것이 당신이 1μ‹œκ°„μ˜ νœ΄κ°€λ₯Ό μ–»λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

μˆœκ°„μ΄ Zλ₯Ό λ¬΄μ‹œν•˜λ„λ‘ ν•˜λ €λ©΄(μ‹œκ°„μ„ 둜컬둜 해석) λ‹€μŒμ„ μˆ˜ν–‰ν•˜μ—¬ Zλ₯Ό μ„ νƒν•˜μ§€ μ•ŠλŠ” ν˜•μ‹μ„ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€.

moment('2016-04-22T16:00:00.000Z', 'YYYY-MM-DDTHH:mm:ss.SSS').format()

λ‹€μ–‘ν•œ ꡬ문 뢄석 λͺ¨λ“œμ— λŒ€ν•œ μžμ„Έν•œ 정보가 ν•„μš”ν•˜λ©΄ κ°€μ΄λ“œμ˜ 이 μ„Ήμ…˜μ΄ 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€. http://momentjs.com/guides/#/parsing/local -utc-zone/

λ§žμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ‹€μ œ μˆ˜μ •μ€ UTCλ₯Ό μ˜λ―Έν•˜μ§€ μ•ŠλŠ” 경우 λ°±μ—”λ“œμ—μ„œ Z λ₯Ό 내보내지 μ•ŠλŠ” κ²ƒμž…λ‹ˆλ‹€.

@ mj1856 예, μ‹œλ„ν–ˆμ§€λ§Œ λ¬Έμ œκ°€ MySQL μžμ²΄κ°€ μ•„λ‹Œ Sequlize에 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€. DB에 λŒ€ν•΄ 직접 쿼리λ₯Ό μ‹€ν–‰ν•˜λ©΄ YYYY-MM-DD HH:MM:SS와 ν•¨κ»˜ 일반 DATETIME이 μ €μž₯λ©λ‹ˆλ‹€. . DB의 μ‹œκ°„λŒ€λ₯Ό 변경해도 별 차이가 μ—†λŠ” 것 κ°™μ•˜μŠ΅λ‹ˆλ‹€. μ–΄μ¨Œλ“  μœ„μ˜ λ‚΄μš©μ€ ν˜„μž¬ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. GMT :bomb으둜 λŒμ•„κ°ˆ λ•Œ λ¬Έμ œκ°€ ν•΄κ²°λ˜λŠ”μ§€ ν™•μΈν•˜κ² μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰