JavaScript Date를 자정으로 초기화하는 가장 좋은 방법은 무엇입니까?
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();
문서 :
http://momentjs.com/docs/#/manipulating/start-of/
아마 사용할 수 있습니다
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
}
d3.js가 이미 프로젝트에 종속성으로 있거나 가져와도 괜찮은 경우 d3 시간 ( d3.js 라이브러리는 v4.0.0에서 모듈 식임 )에 Intervals가 있습니다.
날짜를 "기본"값 (예 : 자정, 0.00 초, 매월 1 일 등)으로 설정할 때 유용 할 수 있습니다.
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)
나는 이것을 위해 몇 가지 프로토 타입을 만들었습니다.
// 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());
var a = new Array();
var b = new Array();
var c = new Array();
var date = new Date().toJSON();
a = date.split("T");
a = a[0];
b = a.split("-");
var currentDate = new Date(b[0],b[1] , b[2] -29 ,-19,30,0).toJSON();
c = currentDate.split(".");
var newDate = c[0];
console.log(newDate);
'Programing' 카테고리의 다른 글
표준 C ++ / C ++ 11 / C를 사용하여 파일이 존재하는지 확인하는 가장 빠른 방법은 무엇입니까? (0) | 2020.02.23 |
---|---|
vi / Vim에서 여러 줄을 선택할 때 텍스트를 어떻게 삽입합니까? (0) | 2020.02.23 |
커밋 된 파일에 .gitignore 적용 (0) | 2020.02.23 |
모든 오류 및 경고 표시 (0) | 2020.02.23 |
C # if / then 지시어 대 디버그 대 릴리스 (0) | 2020.02.23 |