고객이 머리에서 변환하는 것을 좋아하지 않기 때문에 일반적으로 UTC 날짜를 표시하고 싶지 않습니다. 현지 ISO 날짜 를 표시하기 위해 다음 기능을 사용합니다.
function toLocalIsoString(date, includeSeconds) {
function pad(n) { return n < 10 ? '0' + n : n }
var localIsoString = date.getFullYear() + '-'
+ pad(date.getMonth() + 1) + '-'
+ pad(date.getDate()) + 'T'
+ pad(date.getHours()) + ':'
+ pad(date.getMinutes()) + ':'
+ pad(date.getSeconds());
if(date.getTimezoneOffset() == 0) localIsoString += 'Z';
return localIsoString;
};
위의 함수는 표준 시간대 오프셋 정보를 생략하므로 (현지 시간이 UTC 인 경우 제외) 아래 함수를 사용하여 로컬 오프셋을 단일 위치에 표시합니다. 매번 오프셋을 표시하려는 경우 위 함수의 결과에 출력을 추가 할 수도 있습니다.
function getOffsetFromUTC() {
var offset = new Date().getTimezoneOffset();
return ((offset < 0 ? '+' : '-')
+ pad(Math.abs(offset / 60), 2)
+ ':'
+ pad(Math.abs(offset % 60), 2))
};
toLocalIsoString
을 사용합니다 pad
. 필요한 경우 거의 모든 패드 기능처럼 작동하지만 완전성을 위해 이것이 내가 사용하는 것입니다.
// Pad a number to length using padChar
function pad(number, length, padChar) {
if (typeof length === 'undefined') length = 2;
if (typeof padChar === 'undefined') padChar = '0';
var str = "" + number;
while (str.length < length) {
str = padChar + str;
}
return str;
}