JavaScript Date를 자정까지 초기화하는 가장 좋은 방법은 무엇입니까?
의 인스턴스를 얻는 가장 간단한 방법은 무엇입니까?new Date()
자정에 맞춰야 한다고요?
이 메서드는 옵션입니다.minutes
,seconds
그리고.ms
예를 들어 다음과 같습니다.
var d = new Date();
d.setHours(0,0,0,0);
그렇게 하면 할 시간이 생긴다.00:00:00.000
UTC 시간으로 작업하려면 이 방법을 사용할 수 있습니다.
수락된 답변의 일부분이 과거 가장 가까운 자정을 제공한다는 것을 명확히 하고 싶습니다.
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)),
}
이 페이지에서 이 작업을 즉시 수행할 방법을 찾고 있기 때문에 여기에 추가합니다.js나 다른 사용자도 이 작업을 수행할 수 있습니다.
[Rationale: 이 페이지의 다른 곳에 "순간"이라는 단어가 이미 표시되어 있기 때문에 검색 엔진은 여기에 직접 표시되며, moment.js는 다른 날짜 관련 SO 질문에서 언급되는 빈도를 확인할 수 있을 정도로 널리 퍼져 있습니다.]
따라서 버전 2.0.0 이후에서는 다음과 같습니다.
date.startOf('day');
이전 버전의 경우:
date.sod();
문서:
http://momentjs.com/docs/#/자극/시작/
아마 사용하실 수 있습니다.
new Date().setUTCHours(0,0,0,0)
값이 한 번만 필요한 경우.
날짜를 사용하여 계산하면 여름 시간으로 인해 자정(CEST)보다 1시간 이상 또는 1시간 적게 되는 경우가 많습니다.이로 인해 날짜가 반환될 때 1일 차이가 발생합니다.그래서 날짜는 가장 가까운 자정으로 반올림해야 합니다.따라서 코드는 (jamisOn에 대한 ths)가 됩니다.
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
}
@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
}
이것에 의해, 이벤트의 빈도를 설정할 수 있게 되어, 오전 1회, 사이트 방문자라면 오후 1회 밖에 할 수 없게 되었습니다.캡처한 날짜는 쿠키의 유효기간을 설정하는 데 사용되었습니다.
저는 이것을 처리하기 위해 몇 가지 프로토타입을 만들었습니다.
// This is a safety check to make sure the prototype is not already defined.
Function.prototype.method = function (name, func) {
if (!this.prototype[name]) {
this.prototype[name] = func;
return this;
}
};
Date.method('endOfDay', function () {
var date = new Date(this);
date.setHours(23, 59, 59, 999);
return date;
});
Date.method('startOfDay', function () {
var date = new Date(this);
date.setHours(0, 0, 0, 0);
return date;
});
만약 당신이 안전수표를 원하지 않는다면, 당신은 그냥 사용할 수 있습니다.
Date.prototype.startOfDay = function(){
/*Method body here*/
};
사용 예:
var date = new Date($.now()); // $.now() requires jQuery
console.log('startOfDay: ' + date.startOfDay());
console.log('endOfDay: ' + date.endOfDay());
프로젝트에 이미 d3.js가 종속되어 있거나 d3-time(d3.js 라이브러리는 v4.0.0 현재 모듈러형)에 Interval이 있습니다.
날짜를 자정, 0.00초, 월의 첫 번째 등 "기본값"으로 설정할 때 유용합니다.
var d = new Date(); // Wed Aug 02 2017 15:01:07 GMT+0200 (CEST)
d3.timeHour(d) // Wed Aug 02 2017 00:00:00 GMT+0200 (CEST)
d3.timeMonth(d) // Tue Aug 01 2017 00:00:00 GMT+0200 (CEST)
언급URL : https://stackoverflow.com/questions/3894048/what-is-the-best-way-to-initialize-a-javascript-date-to-midnight
'programing' 카테고리의 다른 글
Nuxt, composition-api(vue2) 및 SSR에서 Pinia를 사용하는 방법 (0) | 2022.10.10 |
---|---|
증손자녀 컴포넌트 메서드 호출 (0) | 2022.10.10 |
Vue Router Guards가 Vuex를 대기하도록 하는 방법 (0) | 2022.10.09 |
사전 이해에서 if/else를 사용하려면 어떻게 해야 합니까? (0) | 2022.10.09 |
|와 | 또는 연산자의 차이점은 무엇입니까? (0) | 2022.10.09 |