new Date () 인스턴스를 가져 와서 자정에 시간을 설정하는 가장 간단한 방법은 무엇입니까?
답변
setHours
방법은 선택이 걸릴 수 있습니다 minutes
, seconds
그리고 ms
예를 들어, 인수 :
var d = new Date();
d.setHours(0,0,0,0);
UTC 시간으로 작업하려면이 시간대00:00:00.000
를 사용 하여 현재 시간대 의 시간을 설정합니다 setUTCHours
.
답변
수락 된 답변의 스 니펫 이 과거에 가장 가까운 자정을 제공한다는 것을 분명히하고 싶었습니다 .
var d = new Date();
d.setHours(0,0,0,0); // last midnight
미래에 가장 가까운 자정 을 얻으려면 다음 코드를 사용하십시오.
var d = new Date();
d.setHours(24,0,0,0); // next midnight
답변
객체 구성을위한 단일 라이너 :
new Date(new Date().setHours(0,0,0,0));
요소를 만들 때 :
dateFieldConfig = {
name: "mydate",
value: new Date(new Date().setHours(0, 0, 0, 0)),
}
답변
이 페이지에 방문 하여 moment.js 에서이 작업을 수행하는 방법을 찾고 있기 때문에 여기에 추가하면됩니다 .
[Rationale : “모멘트”라는 단어가 이미이 페이지의 다른 곳에 나타나므로 검색 엔진이 여기에 지시하고 moment.js 는 다른 날짜 관련 SO 질문에서 얼마나 자주 언급되는지에 대해 다루기 위해 충분히 널리 퍼져 있습니다.]
따라서 버전 2.0.0 이상에서 :
date.startOf('day');
이전 버전의 경우 :
date.sod();
문서 :
답변
아마 사용할 수 있습니다
new Date().setUTCHours(0,0,0,0)
값이 한 번만 필요한 경우
답변
@Dan의 예에 유용성을 추가하여 다음 정오 또는 자정을 찾아야했습니다.
var d = new Date();
if(d.getHours() < 12) {
d.setHours(12,0,0,0); // next midnight/midday is midday
} else {
d.setHours(24,0,0,0); // next midnight/midday is midnight
}
이를 통해 이벤트에 대한 게재 빈도 설정을 할 수 있었으며 내 사이트 방문자는 아침에 한 번, 오후에 한 번만 발생할 수있었습니다. 캡처 된 날짜는 쿠키 만료를 설정하는 데 사용되었습니다.
답변
여름철 날짜로 계산하면 자정 (CEST)보다 1 시간 더 많거나 1 시간 더 적게 발생합니다. 날짜가 반환 될 때 1 일 차이가 발생합니다. 따라서 날짜는 가장 가까운 자정으로 반올림해야합니다. 따라서 코드는 다음과 같습니다 (jamisOn).
var d = new Date();
if(d.getHours() < 12) {
d.setHours(0,0,0,0); // previous midnight day
} else {
d.setHours(24,0,0,0); // next midnight day
}