Post

클라이언트의 현재 시간 가져오기: 웹사이트 공지사항 동기화하기

Client 시간을 가져와보자


이번에 공지사항 기능을 개선하면서 공지를 오전 9시부터 띄우기로 했다면 중국에서도 오전 9시에 딱 띄우도록 요구사항이 변경 되었다! 그것이 아니었다면 간단하게 UTC 시간을 사용했을텐데 이제는 Client 의 시간이 필요해졌다.

사실 이것도 어려운 문제는 아니었다. Client 단에서 지금 시간을 가져와서 ISO Format으로 맞추어 server 로 요청을 날리면 될 것 같았고 실제로 잘 동작함을 알 수 있었다!

하지만 아쉽게도 js 에서는 client 시간을 바로 가져오는 method 가 없었기에 아래처럼 손수 작업을 했다!

1
2
3
4
5
6
7
8
9
function getClientDateIsoString() {
	const now = new Date();
	const year = now.getFullYear();
	const month = ('0' + (now.getMonth() + 1)).slice(-2);
	const day = ('0' + now.getDate()).slice(-2);
	const hours = ('0' + now.getHours()).slice(-2);
	const minutes = ('0' + now.getMinutes()).slice(-2); //요거랑 비슷한 역할을 하는padStart 라는 좋은 게 있더라! 다음에 써봐야지
	return `${year}-${month}-${day}T${hours}:${minutes}`;
}

request 를 보낼때 /notification?date={getClientDateIsoString()} 이런식으로 보낸다!

이제는 모두가 정해진 날짜 정해진 각자의 시간에 공지사항을 볼 수 있게 되었다!

This post is licensed under CC BY 4.0 by the author.

© 병욱. Some rights reserved.