λλ μ΄κ²μ΄ λ²κ·ΈλΌκ³ μκ°νλ€.
νμ¬ νλμ 무μμ λκΉ?
νμ¬ λ‘κ·Έμμνλ λ©μ§ λ μ§ κ°μ²΄κ° μμ΅λλ€.
2016λ 4μ 29μΌ κΈμμΌ 13:33:00 GMT+0100(BST)
μ΄ κ°μ²΄κ° $httpλ₯Ό ν΅ν΄ κ²μλλ©΄ λ€νΈμν¬ μμ²μμ λ€μμ΄ κ΄μ°°λ©λλ€.
2016-04-28T12:33:00.000Z
λ°λΌμ $http κ°μ²΄λ μκ°μ λΉΌμ μκ°μμ μκ΅ μλ¨Έ νμ BSTλ₯Ό ν¨κ³Όμ μΌλ‘ μ κ±°ν©λλ€. λ°λΌμ μ΄κ²μ μ€νμ μμ΄ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λ©λλ€. μ΄ λ μ§λ₯Ό μ¦μ μ½μΌλ©΄ λ€μ λμμ€μ§λ§ μμ€ν μ μκ°μ λ€μ μΆκ°ν΄μΌ νλ€λ κ²μ μ΄λ»κ² μ μ μμ΅λκΉ?
λ°λΌμ μ¬μ©μκ° λ€λ₯Έ μκ°λμ μλ€κ³ μμν΄λ³΄μμμ€. 5μκ° μμ μμ€ν μ΄ 5μκ°μ λΊλλ€...μκ°μ μμ±λ 컨ν μ€νΈμ λ―Όκ°ν©λλ€. μ¦, μκ°λ μ 보λ₯Ό μ κ±°νλ©΄ μ λ©λλ€.
Chromeμμ μ΄κ²μ λ³΄κ³ μμ΅λλ€. κ°λ 1.4.2
μ΄κ²μ Angularμ νΉμ ν κ²μ΄ μλλλ€. μ΄λ νμ€ JSON.stringify
λμμ
λλ€.
κΈ°λ³Έμ μΌλ‘ λ°μ΄ν°λ₯Ό κ²μν λ $http
λ λ°μ΄ν°λ₯Ό JSONμΌλ‘ λ³νν©λλ€( JSON.stringify()
). JavaScriptμμ Date κ°μ²΄μ JSON ννμ ISO-8601 νμ(λ€νΈμν¬ νμ νμλ¨)μ
λλ€.
Date κ°μ²΄μλ μ΄μ¨λ μκ°λ μ λ³΄κ° μμΌλ―λ‘ μ λ³΄κ° μ κ±°λμ§ μμ΅λλ€. νμ¬ λ‘μΌμΌ(Date κ°μ²΄κ° λνλ΄λ λ μ§μ μμ ν λ
립μ μ)μλ μκ°λ μ€νμ
μ΄ μμΌλ©° λΈλΌμ°μ λ console.log
gingν λ ν΄λΉ μ€νμ
μ λ°λΌ λ μ§ νμμ μ§μ ν©λλ€.
λ«λ κ²μ Angularμ λ¬Έμ κ° μλλλ€.
@gkalpak λ¨Όμ Date κ°μ²΄μ μκ°λ μ λ³΄κ° μλ€λ κ²μ μ³μ§ μλ€κ³ μκ°ν©λλ€. new Date()λ‘ λ μ§λ₯Ό μμ±ν λ νμ€ μκ°λ μ 보λ κΈ°λ³Έμ μΌλ‘ λ‘컬 μμμ
λλ€. Date κ°μ²΄μλ getTimezoneOffset
λ° toISOString
λ©μλκ° μμ΅λλ€. μ΄ λ©μλλ₯Ό νΈμΆνλ©΄ μμ κ°μ΄ λ°νλ©λλ€. λΈλΌμ°μ κ° μ°λ¦¬μκ² μ’μ κ²°κ³Όλ₯Ό μΈμνλ κ²μ μλλ©° Date κ°μ²΄μ μ€μ κ°μ
λλ€.
new Date().getTimezoneOffset()
-330
new Date().toISOString()
"2018-12-04T05:40:37.399Z"
λμ§Έ, JSON.stringify()
λ μμ κ°μ μ κ±°νμ§ μμ΅λλ€. λ€μμ λΈλΌμ°μ μ½μμμ λ³Έ κ²κ³Ό λμΌν©λλ€. λΈλΌμ°μ λ μ°λ¦¬μκ² μ’μ κ²μ μΈμνμ§ μμ΅λλ€.
JSON.stringify({d:new Date()})
"{"d":"2018-12-04T05:42:08.973Z"}"
λ°λΌμ APIκ° ν΄λΉ λ°λ¦¬μ΄ κ°μ΄ μλ ISO λ μ§λ₯Ό λ λλ§νκ³ UIκ° λ μ§λ§ μ ννκ³ λ μ§λ₯Ό λ³κ²½νλ μΌλΆ datepickerλ₯Ό μ¬μ©νλ κ²½μ° Angularλ λ μ§λ₯Ό ISO νμμΌλ‘ λ€μ λ³νν λ λ°λ¦¬μ΄κ° μμ κ²μ΄λΌκ³ λ―Ώμ΅λλ€. κ°.
λ¨Όμ Date κ°μ²΄μ μκ°λ μ λ³΄κ° μλ€λ λ§μ΄ μ³μ§ μλ€κ³ μκ°ν©λλ€.
λλ μ¬μ ν :grin: A Date
object _"λ 1970λ
1μ 1μΌ UTC μ΄νμ λ°λ¦¬μ΄ μμΈ μκ° κ°μ κΈ°λ°μΌλ‘ νλ [...] λ¨μΌ μκ°μ λνλ
λλ€."λΌκ³ λ§νλ κ²μ΄ μ³λ€κ³ μκ°ν©λλ€. _ (μΆμ²: MDN ). λ°λΌμ κΈ°λ³Έμ μΌλ‘ κ° Date
μΈμ€ν΄μ€λ μ΄ νλμ κ°μ λν΄μλ§ μκ³ μ΄ κ°μ λ€λ₯Έ λͺ¨λ ννμ ν΄λΉ μ 보μ λ‘μΌμΌ/μμ€ν
μν(μ: μκ°λ μ€νμ
)λ₯Ό κΈ°λ°μΌλ‘ μ λλ©λλ€.
Date κ°μ²΄μλ
getTimezoneOffset
λ°toISOString
λ©μλκ° μμ΅λλ€.
μ΄λ€μ Date
κ°μ²΄(μΌλͺ
μΈμ€ν΄μ€) μμ²΄κ° μλλΌ Date
νλ‘ν νμ
(μΆμ²: MDN )μ λ©μλμ
λλ€.
λ³΄λ€ κ΅¬μ²΄μ μΌλ‘, getTimezoneOffset() μ κ°μ νμ¬ λ‘μΌμΌ(νΈμ€νΈ μμ€ν
μ€μ )μ λ°λΌ λ€λ¦
λλ€. μ΄κ²μ΄ λλ±ν setTimezoneOffset()
λ©μλκ° μλ μ΄μ μ λμΌν μμ€ν
μ λͺ¨λ Date
κ°μ²΄κ° getTimezoneOffset()
λν΄ λμΌν κ°μ λ°ννλ μ΄μ μ
λλ€. μ:
const d1 = new Date('December 15, 2018 12:34:56'); // No timezone; uses the current system locale.
const d2 = new Date('December 15, 2018 12:34:56 GMT+10'); // Uses GTM+10 as timezone.
d1.getTimezoneOffset() === d2.getTimezoneOffset(); // true
λ°λΌμ Date
μ λ¬λ λ μ§ λ¬Έμμ΄ ννμ μ§μ λ μκ°λ μ 보λ μμμ μ€λͺ
ν λλ‘ ν΄λΉ λ¬Έμμ΄μ ꡬ문 λΆμνκ³ νΉμ μμ μ 맀ννλ λ°λ§ μ¬μ©λ©λλ€. κ²°κ³Ό Date
κ°μ²΄λ μκ°λμ λν΄ μ무κ²λ λͺ¨λ¦
λλ€.
toISOString() λ©μλλ μ μν λλ‘ μκ°λ μ 보λ₯Ό μΈμνμ§ μμ΅λλ€. UTC
λ₯Ό λνλ΄λ Z
λ₯Ό λμ μΆκ°ν©λλ€.
λμ§Έ,
JSON.stringify()
λ μμ κ°μ μ κ±°νμ§ μμ΅λλ€.
μμμ μ€λͺ
ν κ²μ²λΌ λ μ§ κ°μ UTCλ‘ νννλ toISOString()
λ₯Ό μ¬μ©ν©λλ€(λ°λΌμ λμ Z
λ₯Ό μΆκ°νμ¬ λνλ). λ°νλ λ¬Έμμ΄μ μκ°λ μ λ³΄κ° μμ΅λλ€.
λ°λΌμ APIκ° ν΄λΉ λ°λ¦¬μ΄ κ°μ΄ μλ ISO λ μ§λ₯Ό λ λλ§νκ³ UIκ° λ μ§λ§ μ ννκ³ λ μ§λ₯Ό λ³κ²½νλ μΌλΆ datepickerλ₯Ό μ¬μ©νλ κ²½μ° Angularλ λ μ§λ₯Ό ISO νμμΌλ‘ λ€μ λ³νν λ λ°λ¦¬μ΄κ° μμ κ²μ΄λΌκ³ λ―Ώμ΅λλ€. κ°.
λ°λ¦¬μ΄κ° κ·Έκ²κ³Ό λ¬΄μ¨ κ΄λ ¨μ΄ μλμ§ μ ν λͺ¨λ¦ λλ€. μ°λ¦¬λ μκ°λ μ 보μ λν΄ μ΄μΌκΈ°νκ³ μμμ΅λλ€.
λ€μ λ§νμ§λ§ μ΄κ²μ AngularJSμ μ무 κ΄λ ¨μ΄ μμ΅λλ€. μ΄κ²μ΄ κΈ°λ³Έ μ 곡 κ°μ²΄(μ: Date
λ° JSON
)κ° μλ‘ μνΈ μμ©νλ λ°©μμ
λλ€.
κ°μ₯ μ μ©ν λκΈ
λλ μ¬μ ν :grin: A
Date
object _"λ 1970λ 1μ 1μΌ UTC μ΄νμ λ°λ¦¬μ΄ μμΈ μκ° κ°μ κΈ°λ°μΌλ‘ νλ [...] λ¨μΌ μκ°μ λνλ λλ€."λΌκ³ λ§νλ κ²μ΄ μ³λ€κ³ μκ°ν©λλ€. _ (μΆμ²: MDN ). λ°λΌμ κΈ°λ³Έμ μΌλ‘ κ°Date
μΈμ€ν΄μ€λ μ΄ νλμ κ°μ λν΄μλ§ μκ³ μ΄ κ°μ λ€λ₯Έ λͺ¨λ ννμ ν΄λΉ μ 보μ λ‘μΌμΌ/μμ€ν μν(μ: μκ°λ μ€νμ )λ₯Ό κΈ°λ°μΌλ‘ μ λλ©λλ€.#
μ΄λ€μ
Date
κ°μ²΄(μΌλͺ μΈμ€ν΄μ€) μμ²΄κ° μλλΌDate
νλ‘ν νμ (μΆμ²: MDN )μ λ©μλμ λλ€.λ³΄λ€ κ΅¬μ²΄μ μΌλ‘, getTimezoneOffset() μ κ°μ νμ¬ λ‘μΌμΌ(νΈμ€νΈ μμ€ν μ€μ )μ λ°λΌ λ€λ¦ λλ€. μ΄κ²μ΄ λλ±ν
setTimezoneOffset()
λ©μλκ° μλ μ΄μ μ λμΌν μμ€ν μ λͺ¨λDate
κ°μ²΄κ°getTimezoneOffset()
λν΄ λμΌν κ°μ λ°ννλ μ΄μ μ λλ€. μ:λ°λΌμ
Date
μ λ¬λ λ μ§ λ¬Έμμ΄ ννμ μ§μ λ μκ°λ μ 보λ μμμ μ€λͺ ν λλ‘ ν΄λΉ λ¬Έμμ΄μ ꡬ문 λΆμνκ³ νΉμ μμ μ 맀ννλ λ°λ§ μ¬μ©λ©λλ€. κ²°κ³ΌDate
κ°μ²΄λ μκ°λμ λν΄ μ무κ²λ λͺ¨λ¦ λλ€.toISOString() λ©μλλ μ μν λλ‘ μκ°λ μ 보λ₯Ό μΈμνμ§ μμ΅λλ€.
UTC
λ₯Ό λνλ΄λZ
λ₯Ό λμ μΆκ°ν©λλ€.#
μμμ μ€λͺ ν κ²μ²λΌ λ μ§ κ°μ UTCλ‘ νννλ
toISOString()
λ₯Ό μ¬μ©ν©λλ€(λ°λΌμ λμZ
λ₯Ό μΆκ°νμ¬ λνλ). λ°νλ λ¬Έμμ΄μ μκ°λ μ λ³΄κ° μμ΅λλ€.#
λ°λ¦¬μ΄κ° κ·Έκ²κ³Ό λ¬΄μ¨ κ΄λ ¨μ΄ μλμ§ μ ν λͺ¨λ¦ λλ€. μ°λ¦¬λ μκ°λ μ 보μ λν΄ μ΄μΌκΈ°νκ³ μμμ΅λλ€.
λ€μ λ§νμ§λ§ μ΄κ²μ AngularJSμ μ무 κ΄λ ¨μ΄ μμ΅λλ€. μ΄κ²μ΄ κΈ°λ³Έ μ 곡 κ°μ²΄(μ:
Date
λ°JSON
)κ° μλ‘ μνΈ μμ©νλ λ°©μμ λλ€.