programing

JavaScript Date를 자정까지 초기화하는 가장 좋은 방법은 무엇입니까?

kingscode 2022. 10. 9. 11:49
반응형

JavaScript Date를 자정까지 초기화하는 가장 좋은 방법은 무엇입니까?

의 인스턴스를 얻는 가장 간단한 방법은 무엇입니까?new Date()자정에 맞춰야 한다고요?

이 메서드는 옵션입니다.minutes,seconds그리고.ms예를 들어 다음과 같습니다.

var d = new Date();
d.setHours(0,0,0,0);

그렇게 하면 할 시간이 생긴다.00:00:00.000UTC 시간으로 작업하려면 이 방법을 사용할 수 있습니다.

수락된 답변의 일부분이 과거 가장 가까운 자정을 제공한다는 것을 명확히 하고 싶습니다.

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

반응형