Moment: 10μ§„μˆ˜ λ°€λ¦¬μ΄ˆ 지원

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

(버전 2.13.0)
ISO ν‘œμ€€μ€ dateTime λ¬Έμžμ—΄μ—μ„œ 'Z' μ•žμ˜ μ†Œμˆ˜ 초λ₯Ό ν—ˆμš©ν•©λ‹ˆλ‹€. .net ν”Œλž«νΌμ€ μ†Œμˆ˜μ  μ΄ν•˜ 7자리λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€. 반면 moment.js λΌμ΄λΈŒλŸ¬λ¦¬λŠ” μ†Œμˆ˜μ  μ΄ν•˜ 3μžλ¦¬κΉŒμ§€λ§Œ ꡬ문 λΆ„μ„ν•©λ‹ˆλ‹€.

λ‚˜λŠ” μ›μˆ­μ΄κ°€ 생성 κ°μ²΄μ—μ„œ 전체 7자리 숫자λ₯Ό κ°€μ Έμ˜€κΈ° μœ„ν•΄ 포맷터(toISOString())λ₯Ό νŒ¨μΉ˜ν–ˆμ§€λ§Œ 이것은 λ”μ°ν•œ ν•΄ν‚Ήμž…λ‹ˆλ‹€. νŒŒμ„œλ₯Ό νŒ¨μΉ˜ν•˜λŠ” 것이 훨씬 더 λ‚˜μ„ κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ ν˜„μž¬ μ΄ν•΄ν•˜κ³  μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ•„λ§ˆλ„ λ‹€λ₯Έ ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

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

맀기,

Ah. I hadn't realised this was a limitation of Javascript.

I had found the option for formatting that you had mentioned - but

λ‚˜λ₯Ό μœ„ν•΄ λ‚˜λŠ” κ·Έ μ—¬λΆ„μ˜ μˆ«μžκ°€ μ •λ§λ‘œ ν•„μš”ν•©λ‹ˆλ‹€. μ œλ‘œλŠ” μΆ©λΆ„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

My 'monkey patch' looks at the creationData for the moment and

μˆ˜λ™μœΌλ‘œ μž…λ ₯ λ¬Έμžμ—΄μ—μ„œ λ°€λ¦¬μ΄ˆλ₯Ό ꡬ문 λΆ„μ„ν•©λ‹ˆλ‹€(인 경우
μ‚¬μš© κ°€λŠ₯).

//Monkey patch the moment library to use 7 decimal places for seconds in it's standard ISO format - to match C# moment.fn._oldToISOString = moment.fn.toISOString; moment.fn.toISOString = function () { try { var originalDateSplit = moment(this).creationData().input.split("."); var milliseconds = originalDateSplit[originalDateSplit.length - 1]; if (milliseconds.indexOf(this.milliseconds()) === 0) { return moment(this).format('YYYY-MM-DD[T]HH:mm:ss.') + milliseconds + "Z"; } else { return moment(this)._oldToISOString(); } } catch (error) { return moment(this)._oldToISOString(); } }
아름닡지 μ•ŠμŠ΅λ‹ˆλ‹€.
μ›λž˜ ISO λ‚ μ§œ λ¬Έμžμ—΄μ—μ„œ ꡬ문 λΆ„μ„λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ—­μ‹œ λͺ¨μˆœμ΄κ² μ§€
milliseconds() ν•¨μˆ˜λ‘œ 더 λ‚˜μ€ μ•„μ΄λ””μ–΄λŠ” μ°¨λ‹¨ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€
ν”„λ‘œμ„ΈμŠ€λ₯Ό ꡬ문 λΆ„μ„ν•˜κ³  μ†Œμˆ˜μ  μ΄ν•˜ 초λ₯Ό λ³„λ„μ˜ μ†μ„±μœΌλ‘œ κ°€μ Έμ˜΅λ‹ˆλ‹€.
μˆœκ°„ 객체 - ν•„μš”μ— 따라 λ°˜ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

However - I do appreciate that we are moving beyond the scope of the

이 μ‹œμ μ—μ„œ moment.js 라이브러리 - 더 이상 λž˜νΌκ°€ μ•„λ‹™λ‹ˆλ‹€.
μžλ°”μŠ€ν¬λ¦½νŠΈ λ‚ μ§œ 객체.

Perhaps we could make this limitation a little clear in the moment.js

선적 μ„œλ₯˜ λΉ„μΉ˜? μ§€κΈˆμ€ λ°€λ¦¬μ΄ˆ 자λ₯΄κΈ°κ°€ μ•”μ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
예제 μ½”λ“œμ΄μ§€λ§Œ λͺ…μ‹œμ μœΌλ‘œ μ„€λͺ…λ˜μ§€ μ•ŠμŒ - λ‹€μŒκ³Ό 같은 μ„€λͺ…은 μ—†μŠ΅λ‹ˆλ‹€.
μ™œ 이런 μ‹μœΌλ‘œ ν–‰λ™ν•˜λŠ”μ§€.

Thank you for your help Maggie - it is much appreciated.

λ¬Έμ•ˆ 인사,
λ²€ ν•΄μ„œμ›¨μ΄
μ†Œν”„νŠΈμ›¨μ–΄ 개발자
DATUM - μ§€λ°˜ 곡학 및 ꡬ쑰 λͺ¨λ‹ˆν„°λ§

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

Moment.jsλŠ” JavaScript의 Date κ°œμ²΄μ— λŒ€ν•œ λž˜νΌμ΄λ―€λ‘œ μ†Œμˆ˜μ  μ΄ν•˜ μ„Έ 자리(λ°€λ¦¬μ΄ˆ)둜 μ œν•œλ©λ‹ˆλ‹€. 이것은 λ‚ μ§œ κ°œμ²΄κ°€ μ§€μ›ν•˜λŠ” 전뢀이기 λ•Œλ¬Έμ— 더 이상 μ €μž₯ν•  방법이 μ—†μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ ν‘œμ‹œν•˜κ±°λ‚˜ ꡬ문 뢄석할 μ†Œμˆ˜μ  μ΄ν•˜ 7자리λ₯Ό μ–»κΈ° μœ„ν•΄ μ›μˆ­μ΄ 패치λ₯Ό ν•  ν•„μš”λŠ” μ—†μŠ΅λ‹ˆλ‹€. 처음 μ„Έ 개만 μ‹€μ œλ‘œ μ‚¬μš©λœλ‹€λŠ” 점에 μœ μ˜ν•˜μ‹­μ‹œμ˜€.

moment('2016-01-01T05:21:22.1234567Z').format('YYYY-MM-DDTHH:mm:ss.SSSSSSS')
"2015-12-31T23:21:22.1230000"

좜λ ₯은 0으둜 μ±„μ›Œμ Έ μžˆμ§€λ§Œ μ–‘λ°©ν–₯으둜 7자리 μˆ«μžκ°€ μžˆμŠ΅λ‹ˆλ‹€.

맀기,

Ah. I hadn't realised this was a limitation of Javascript.

I had found the option for formatting that you had mentioned - but

λ‚˜λ₯Ό μœ„ν•΄ λ‚˜λŠ” κ·Έ μ—¬λΆ„μ˜ μˆ«μžκ°€ μ •λ§λ‘œ ν•„μš”ν•©λ‹ˆλ‹€. μ œλ‘œλŠ” μΆ©λΆ„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

My 'monkey patch' looks at the creationData for the moment and

μˆ˜λ™μœΌλ‘œ μž…λ ₯ λ¬Έμžμ—΄μ—μ„œ λ°€λ¦¬μ΄ˆλ₯Ό ꡬ문 λΆ„μ„ν•©λ‹ˆλ‹€(인 경우
μ‚¬μš© κ°€λŠ₯).

//Monkey patch the moment library to use 7 decimal places for seconds in it's standard ISO format - to match C# moment.fn._oldToISOString = moment.fn.toISOString; moment.fn.toISOString = function () { try { var originalDateSplit = moment(this).creationData().input.split("."); var milliseconds = originalDateSplit[originalDateSplit.length - 1]; if (milliseconds.indexOf(this.milliseconds()) === 0) { return moment(this).format('YYYY-MM-DD[T]HH:mm:ss.') + milliseconds + "Z"; } else { return moment(this)._oldToISOString(); } } catch (error) { return moment(this)._oldToISOString(); } }
아름닡지 μ•ŠμŠ΅λ‹ˆλ‹€.
μ›λž˜ ISO λ‚ μ§œ λ¬Έμžμ—΄μ—μ„œ ꡬ문 λΆ„μ„λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ—­μ‹œ λͺ¨μˆœμ΄κ² μ§€
milliseconds() ν•¨μˆ˜λ‘œ 더 λ‚˜μ€ μ•„μ΄λ””μ–΄λŠ” μ°¨λ‹¨ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€
ν”„λ‘œμ„ΈμŠ€λ₯Ό ꡬ문 λΆ„μ„ν•˜κ³  μ†Œμˆ˜μ  μ΄ν•˜ 초λ₯Ό λ³„λ„μ˜ μ†μ„±μœΌλ‘œ κ°€μ Έμ˜΅λ‹ˆλ‹€.
μˆœκ°„ 객체 - ν•„μš”μ— 따라 λ°˜ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

However - I do appreciate that we are moving beyond the scope of the

이 μ‹œμ μ—μ„œ moment.js 라이브러리 - 더 이상 λž˜νΌκ°€ μ•„λ‹™λ‹ˆλ‹€.
μžλ°”μŠ€ν¬λ¦½νŠΈ λ‚ μ§œ 객체.

Perhaps we could make this limitation a little clear in the moment.js

선적 μ„œλ₯˜ λΉ„μΉ˜? μ§€κΈˆμ€ λ°€λ¦¬μ΄ˆ 자λ₯΄κΈ°κ°€ μ•”μ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
예제 μ½”λ“œμ΄μ§€λ§Œ λͺ…μ‹œμ μœΌλ‘œ μ„€λͺ…λ˜μ§€ μ•ŠμŒ - λ‹€μŒκ³Ό 같은 μ„€λͺ…은 μ—†μŠ΅λ‹ˆλ‹€.
μ™œ 이런 μ‹μœΌλ‘œ ν–‰λ™ν•˜λŠ”μ§€.

Thank you for your help Maggie - it is much appreciated.

λ¬Έμ•ˆ 인사,
λ²€ ν•΄μ„œμ›¨μ΄
μ†Œν”„νŠΈμ›¨μ–΄ 개발자
DATUM - μ§€λ°˜ 곡학 및 ꡬ쑰 λͺ¨λ‹ˆν„°λ§

μ•ˆλ…•ν•˜μ„Έμš” @maggiepint μž…λ‹ˆλ‹€ .

λ‚˜λŠ” 같은 것을 μ°Ύκ³  μžˆμŠ΅λ‹ˆλ‹€. moment.js λ₯Ό 톡해 λ””λ²„κΉ…ν•œ ν›„ zerofill ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” κ²ƒμœΌλ‘œ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€.

κ²°κ³Ό 값은 λ¬Έμžμ—΄μ΄λ―€λ‘œ 0으둜 μ±„μ›Œμ§€λŠ” 이유λ₯Ό λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.πŸ€”πŸ€”πŸ€”
예λ₯Ό λ“€μ–΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

const value = 1596099230963;
const formatString = 'MM/DD/YYYY HH:mm:ss.SSSSSS';
const val = moment.utc(value).format(formatString);
console.log(val);

그것은 인쇄 07/30/2020 08:53:50.963000 λŒ€μ‹  07/30/2020 08:53:50.963939

λ˜ν•œ moment.js 의 이전 버전은 이 0 μ±„μš°κΈ°(예: 버전 2.5)λ₯Ό μˆ˜ν–‰ν•˜μ§€ μ•ŠλŠ” κ²ƒμœΌλ‘œ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€.

moment.js 에 λ³€κ²½ 사항이 μˆ˜ν–‰λ˜μ§€ μ•ŠλŠ” ν•œ λ‚ μ§œμ— μ˜¬λ°”λ₯Έ 정보λ₯Ό μœ μ§€ν•˜λ €λ©΄ μ§€κΈˆ μ‚¬μš©μž 지정 포맷터λ₯Ό μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€. μš°λ¦¬κ°€ 이 λ³€ν™”λ₯Ό λ§Œλ“€ 수 μžˆλŠ” κΈ°νšŒκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

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