누구든지 데이트를하는 쉬운 방법을 알고 있습니까 (예 : 오늘) X 일로 돌아가는가?
예를 들어 오늘 5 일 전의 날짜를 계산하려면
누구든지 데이트를하는 쉬운 방법을 알고 있습니까 (예 : 오늘) X 일로 돌아가는가?
예를 들어 오늘 5 일 전의 날짜를 계산하려면
답변:
다음과 같이 해보십시오 :
var d = new Date();
d.setDate(d.getDate()-5);
이렇게하면 날짜 개체가 수정되고 업데이트 된 날짜의 시간 값이 반환됩니다.
var d = new Date();
document.write('Today is: ' + d.toLocaleString());
d.setDate(d.getDate() - 5);
document.write('<br>5 days ago was: ' + d.toLocaleString());
new Date(new Date().setDate(new Date().getDate()-5))
-5 일 전입니다. 답의 예에서 새 날짜로 전달하여 날짜 객체를 가져옵니다. 그래서 new Date(d)
당신이 원하는 것입니다.
setDate(-1)
날짜를 해당 월의 마지막 날로 설정합니다
toString
같은 방법 toISOString
, toDateString
등
var dateOffset = (24*60*60*1000) * 5; //5 days
var myDate = new Date();
myDate.setTime(myDate.getTime() - dateOffset);
웹 응용 프로그램 전체에서 많은 헤드 데이트 날짜 조작을 수행하는 경우 DateJS 를 사용하면 훨씬 쉽게 생활 할 수 있습니다.
getTime()
그리고 setTime()
신기원 밀리 세컨드입니다. 시간이 1 년을 넘더라도 문제가되지 않습니다.
다음과 같이 진행됩니다.
var d = new Date(); // today!
var x = 5; // go back 5 days!
d.setDate(d.getDate() - x);
function getDaysAgo(b){var a=new Date;a.setDate(a.getDate()-b);return a};
그저var daysAgo45 = getDaysAgo(45);
getDays + X가 일 / 월 경계에서 작동하지 않는 것으로 나타났습니다. 날짜가 1970 년 이전이 아닌 한 getTime을 사용할 수 있습니다.
var todayDate = new Date(), weekDate = new Date();
weekDate.setTime(todayDate.getTime()-(7*24*3600000));
moment.js를 얻으십시오. 모든 멋진 아이들이 사용합니다. 더 많은 서식 옵션 등이 있습니다.
var n = 5;
var dateMnsFive = moment(<your date>).subtract(n , 'day');
선택 과목! 각도 바인딩의 경우 JS Date obj로 변환하십시오.
var date = new Date(dateMnsFive.toISOString());
선택 과목! 체재
var date = dateMnsFive.format("YYYY-MM-DD");
음수 값을 전달하여 일을 빼고 양수 값을 전달하여 일을 더할 수 있도록 Date에 대한 프로토 타입을 만들었습니다.
if(!Date.prototype.adjustDate){
Date.prototype.adjustDate = function(days){
var date;
days = days || 0;
if(days === 0){
date = new Date( this.getTime() );
} else if(days > 0) {
date = new Date( this.getTime() );
date.setDate(date.getDate() + days);
} else {
date = new Date(
this.getFullYear(),
this.getMonth(),
this.getDate() - Math.abs(days),
this.getHours(),
this.getMinutes(),
this.getSeconds(),
this.getMilliseconds()
);
}
this.setTime(date.getTime());
return this;
};
}
그래서 그것을 사용하려면 간단히 쓸 수 있습니다.
var date_subtract = new Date().adjustDate(-4),
date_add = new Date().adjustDate(4);
d.setDate(d.getDate() + days)
대해 양수 및 음수 값을 모두 사용 하여 일 을 더하고 뺄 수 있습니다. 그리고 다른 Date 메서드와 마찬가지로 인스턴스에서 작동해야하며 복사본을 만들고 반환하지 않아야합니다.
기존 솔루션 중 일부는 가깝지만 정확히 내가 원하는 것은 아닙니다. 이 함수는 양수 또는 음수 값 모두에서 작동하며 경계 경우를 처리합니다.
function addDays(date, days) {
return new Date(
date.getFullYear(),
date.getMonth(),
date.getDate() + days,
date.getHours(),
date.getMinutes(),
date.getSeconds(),
date.getMilliseconds()
);
}
나는 밀리 초 단위로 수학하는 것을 좋아합니다. 그래서 사용Date.now()
var newDate = Date.now() + -5*24*3600*1000; // date 5 days ago in milliseconds
그리고 당신이 그것을 좋아한다면
new Date(newDate).toString(); // or .toUTCString or .toISOString ...
참고 : Date.now()
구형 브라우저에서는 작동하지 않습니다 (예 : IE8이라고 생각합니다). 여기에 폴리 필 .
@socketpair는 내 멍청함을 지적했습니다. "일년에는 23 시간, 시간대 규칙에 따라 약 25 시간이 있습니다"라고 말합니다.
이를 확대하기 위해 위의 답변은 일광 절약 시간제 변경이있는 시간대에서 5 일 전 현지 날짜를 계산하려는 경우 일광 절약 시간이 부정확합니다.
Date.now()
현재의 LOCAL에 현재 시간 을 제공 한다고 잘못 가정 하거나.toString()
때문에 로컬 날짜를 반환하고와 호환되지 Date.now()
UTC의 기본 날짜입니다. 그러나 UTC로 수학을 수행하는 경우 작동합니다. 예 :
A. 5 일 전 UTC 날짜를 원합니다 (UTC)
var newDate = Date.now() + -5*24*3600*1000; // date 5 days ago in milliseconds UTC
new Date(newDate).toUTCString(); // or .toISOString(), BUT NOT toString
B. 다음을 사용하여 "현재"이외의 UTC 기본 날짜로 시작합니다. Date.UTC()
newDate = new Date(Date.UTC(2015, 3, 1)).getTime() + -5*24*3600000;
new Date(newDate).toUTCString(); // or .toISOString BUT NOT toString
getDate () / setDate () 메소드의 문제점은 너무 쉽게 모든 것을 밀리 초로 변환한다는 것입니다. 구문은 때로는 따라하기가 어렵습니다.
대신 1 일 = 86,400,000 밀리 초라는 사실을 해결하고 싶습니다.
따라서 특정 질문에 대해 :
today = new Date()
days = 86400000 //number of milliseconds in a day
fiveDaysAgo = new Date(today - (5*days))
매력처럼 작동합니다.
나는 30/60/365 일의 롤링 계산을 위해 항상이 방법을 사용합니다.
이것을 쉽게 추정하여 몇 달, 몇 년 동안 시간 단위를 만들 수 있습니다.
날짜를 여러 부분으로 나누고 조정 된 값으로 새 날짜를 반환하십시오.
function DateAdd(date, type, amount){
var y = date.getFullYear(),
m = date.getMonth(),
d = date.getDate();
if(type === 'y'){
y += amount;
};
if(type === 'm'){
m += amount;
};
if(type === 'd'){
d += amount;
};
return new Date(y, m, d);
}
월은 0부터 시작하지만 날짜는 그렇지 않습니다. 즉, 새로운 날짜 (2009, 1, 1) == 2009 년 2 월 1 일, 새로운 날짜 (2009, 1, 0) == 2009 년 1 월 31 일;
두 번째 변수를 사용하지 않고 7 일을 지난 x 일로 바꿀 수 있습니다.
let d=new Date(new Date().getTime() - (7 * 24 * 60 * 60 * 1000))
날짜 조작 기능을 만들었습니다. 며칠, 시간, 분을 더하거나 뺄 수 있습니다.
function dateManipulation(date, days, hrs, mins, operator) {
date = new Date(date);
if (operator == "-") {
var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
var newDate = new Date(date.getTime() - durationInMs);
} else {
var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
var newDate = new Date(date.getTime() + durationInMs);
}
return newDate;
}
이제 매개 변수를 전달하여이 함수를 호출하십시오. 예를 들어 오늘부터 3 일 전에 날짜를 가져 오는 함수 호출이 있습니다.
var today = new Date();
var newDate = dateManipulation(today, 3, 0, 0, "-");
MomentJS를 사용하십시오 .
function getXDaysBeforeDate(referenceDate, x) {
return moment(referenceDate).subtract(x , 'day').format('MMMM Do YYYY, h:mm:ss a');
}
var yourDate = new Date(); // let's say today
var valueOfX = 7; // let's say 7 days before
console.log(getXDaysBeforeDate(yourDate, valueOfX));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
가장 인기있는 답변은 내 코드의 버그로 이어졌으며 첫 달에 현재 달의 미래 날짜가 설정됩니다. 여기 내가 한 일이 있습니다.
curDate = new Date(); // Took current date as an example
prvDate = new Date(0); // Date set to epoch 0
prvDate.setUTCMilliseconds((curDate - (5 * 24 * 60 * 60 * 1000))); //Set epoch time
날짜를 관리하는 쉬운 방법은 Moment.js를 사용하는 것입니다
사용할 수 있습니다 add
. 예
var startdate = "20.03.2014";
var new_date = moment(startdate, "DD.MM.YYYY");
new_date.add(5, 'days'); //Add 5 days to start date
alert(new_date);
나를 위해 모든 조합이 코드 snipplet 아래에서 잘 작동했습니다. 스 니펫은 Angular-2 구현입니다. 일을 추가 해야하는 경우 양수 numberofDays를 전달하고 음수 numberofDays를 빼야하는 경우
function addSubstractDays(date: Date, numberofDays: number): Date {
let d = new Date(date);
return new Date(
d.getFullYear(),
d.getMonth(),
(d.getDate() + numberofDays)
);
}
date.js에서 좋은 주행 거리를 얻습니다.
d = new Date();
d.add(-10).days(); // subtract 10 days
좋은!
웹 사이트는이 아름다움을 포함합니다 :
Datejs는 문자열을 구문 분석하지 않고 두 개로 깔끔하게 슬라이스합니다.
며칠을 빼고 사람이 읽을 수있는 형식으로 날짜를 형식화하려면 DateHelper
다음과 같은 사용자 지정 개체를 만드는 것이 좋습니다 .
var DateHelper = {
addDays : function(aDate, numberOfDays) {
aDate.setDate(aDate.getDate() + numberOfDays); // Add numberOfDays
return aDate; // Return the date
},
format : function format(date) {
return [
("0" + date.getDate()).slice(-2), // Get day and pad it with zeroes
("0" + (date.getMonth()+1)).slice(-2), // Get month and pad it with zeroes
date.getFullYear() // Get full year
].join('/'); // Glue the pieces together
}
}
// With this helper, you can now just use one line of readable code to :
// ---------------------------------------------------------------------
// 1. Get the current date
// 2. Subtract 5 days
// 3. Format it
// 4. Output it
// ---------------------------------------------------------------------
document.body.innerHTML = DateHelper.format(DateHelper.addDays(new Date(), -5));
( 이 바이올린 참조 )
다음 코드를 참조하여 현재 날짜에서 요일을 뺍니다. 또한 빼기 날짜에 따라 월을 설정하십시오.
var today = new Date();
var substract_no_of_days = 25;
today.setTime(today.getTime() - substract_no_of_days* 24 * 60 * 60 * 1000);
var substracted_date = (today.getMonth()+1) + "/" +today.getDate() + "/" + today.getFullYear();
alert(substracted_date);
자바 스크립트를 사용할 수 있습니다.
var CurrDate = new Date(); // Current Date
var numberOfDays = 5;
var days = CurrDate.setDate(CurrDate.getDate() + numberOfDays);
alert(days); // It will print 5 days before today
PHP의 경우
$date = date('Y-m-d', strtotime("-5 days")); // it shows 5 days before today.
echo $date;
그것이 도움이되기를 바랍니다.
나는 밀리 초로 변환하고 달을 빼면 달과 연도는 변경되지 않으며 논리적이지 않습니다.
var numberOfDays = 10;//number of days need to deducted or added
var date = "01-01-2018"// date need to change
var dt = new Date(parseInt(date.substring(6), 10), // Year
parseInt(date.substring(3,5), 10) - 1, // Month (0-11)
parseInt(date.substring(0,2), 10));
var new_dt = dt.setMilliseconds(dt.getMilliseconds() - numberOfDays*24*60*60*1000);
new_dt = new Date(new_dt);
var changed_date = new_dt.getDate()+"-"+(new_dt.getMonth()+1)+"-"+new_dt.getFullYear();
희망은 도움이됩니다
var date = new Date();
var day = date.getDate();
var mnth = date.getMonth() + 1;
var fDate = day + '/' + mnth + '/' + date.getFullYear();
document.write('Today is: ' + fDate);
var subDate = date.setDate(date.getDate() - 1);
var todate = new Date(subDate);
var today = todate.getDate();
var tomnth = todate.getMonth() + 1;
var endDate = today + '/' + tomnth + '/' + todate.getFullYear();
document.write('<br>1 days ago was: ' + endDate );
이런 식으로 해보십시오
dateLimit = (curDate, limit) => {
offset = curDate.getDate() + limit
return new Date( curDate.setDate( offset) )
}
currDate 는 날짜가 될 수 있습니다
한계 는 일 수의 차이 일 수 있습니다 (미래에 긍정적이고 과거에 부정적)
이것은 당신에게 어떤 종류의 문제도 얻지 못할 것입니다.
var date = new Date();
var day=date.getDate();
var month=date.getMonth() + 1;
var year=date.getFullYear();
var startDate=day+"/"+month+"/"+year;
var dayBeforeNineDays=moment().subtract(10, 'days').format('DD/MM/YYYY');
startDate=dayBeforeNineDays;
var endDate=day+"/"+month+"/"+year;
당신은 당신의 요구 사항에 따라 빼기 일을 변경할 수 있습니다