JavaScript, как получить дату завтрашнего дня в формате dd-mm-yy
Я пытаюсь заставить JavaScript отображать дату завтрашнего дня в формате (dd-mm-yyyy)
У меня есть этот script, который отображает сегодняшнюю дату в формате (dd-mm-yyyy)
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
Displays: 25/2/2012 (todays date of this post)
Но как мне заставить его отображать дату завтрашнего дня в том же формате, т.е. 26/2/2012
Я пробовал это:
var day = currentDate.getDate() + 1
Однако я мог бы держать +1
и переходить через 31, очевидно, не было > 32 дня в месяц
Был ли поиск часов, но, похоже, на это не было ответа или решения?
Ответы
Ответ 1
Это должно помочь вам справиться с этим.
Если вы передадите конструктор Date, то он будет выполнять оставшуюся часть работы.
24 часа 60 минут 60 секунд 1000 миллисекунд
var currentDate = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
Следует иметь в виду, что этот метод вернет дату ровно через 24 часа, что может быть неточным в летнее время.
Фил ответит в любое время:
var currentDate = new Date();
currentDate.setDate(currentDate.getDate() + 1);
Причина, по которой я редактировал свой пост, - это то, что я сам создал ошибку, которая обнаружилась во время DST, используя мой старый метод.
Ответ 2
Класс JavaScript Date
обрабатывает это для вас
var d = new Date("2012-02-29")
console.log(d)
// Wed Feb 29 2012 11:00:00 GMT+1100 (EST)
d.setDate(d.getDate() + 1)
console.log(d)
// Thu Mar 01 2012 11:00:00 GMT+1100 (EST)
console.log(d.getDate())
// 1
Ответ 3
Я бы использовал библиотеку DateJS. Он может сделать именно это.
http://www.datejs.com/
Сделайте следующее:
var d = new Date.today().addDays(1).toString("dd-mm-yyyy");
Date.today()
- дает вам сегодня в полночь.
Ответ 4
Варианты использования:
Date.tomorrow() // 1 day next
Date.daysNext(1) // alternative Date.tomorrow()
Date.daysNext(2) // 2 days next.
IF "завтра" не зависит от сегодняшнего дня, а от другой даты, отличной от Date.now()
. Не используйте статические методы, но вы должны использовать нестатические:
i.e: Fri Dec 05 2008
var dec5_2008=new Date(Date.parse('2008/12/05'));
dec5_2008.tomorrow(); // 2008/12/06
dec5_2008.tomorrow().day // 6
dec5_2008.tomorrow().month // 12
dec5_2008.tomorrow().year //2008
dec5_2008.daysNext(1); // the same as previous
dec5_2008.daysNext(7) // next week :)
API:
Dateold=Date;function Date(e){var t=null;if(e){t=new Dateold(e)}else{t=new Dateold}t.day=t.getDate();t.month=t.getMonth()+1;t.year=t.getFullYear();return t}Date.prototype.daysNext=function(e){if(!e){e=0}return new Date(this.getTime()+24*60*60*1e3*e)};Date.prototype.daysAgo=function(e){if(!e){e=0}return Date.daysNext(-1*e)};Date.prototype.tomorrow=function(){return this.daysNext(1)};Date.prototype.yesterday=function(){return this.daysAgo(1)};Date.tomorrow=function(){return Date.daysNext(1)};Date.yesterday=function(){return Date.daysAgo(1)};Date.daysNext=function(e){if(!e){e=0}return new Date((new Date).getTime()+24*60*60*1e3*e)};Date.daysAgo=function(e){if(!e){e=0}return Date.daysNext(-1*e)}
Ответ 5
Метод Date.prototype.setDate() принимает даже аргументы вне стандартного диапазона и соответственно меняет дату.
function getTomorrow() {
const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1); // even 32 is acceptable
return `${tomorrow.getFullYear()}/${tomorrow.getMonth() + 1}/${tomorrow.getDate()}`;
}
Ответ 6
Способ 1. Если у вас нет проблем с использованием другой библиотеки, это может сработать для вас с помощью moment.js
moment().add('days', 1).format('L');
Способ 2: Использование Date.js,
<script type="text/javascript" src="date.js"></script>
var tomorrow = new Date.today().addDays(1).toString("dd-mm-yyyy");
Этот метод использует внешнюю библиотеку, а не собственную библиотеку Date.
Поскольку мой bootstrap-datetimepicker использовал time.js и собственную библиотеку дат, я предпочел метод 1. Этот question упоминает эти и некоторые другие методы.
Ответ 7
function getMonday(d)
{
// var day = d.getDay();
var day = @Config.WeekStartOn
diff = d.getDate() - day + (day == 0 ? -6 : 0);
return new Date(d.setDate(diff));
}
Ответ 8
Это очень просто:
1: Создайте объект даты с сегодняшней датой и временем.
2: Используйте методы объекта даты, чтобы получить день, месяц и полный год и объединить их с помощью оператора +.
Посетите http://www.thesstech.com/javascript/date-time JavaScript для подробного руководства по дате и времени.
Пример кода:
var my_date = new Date();
var tomorrow_date = (my_date .getDate()+1) + "-" + (my_date .getMonth()+1) + "-" + my_date .getFullYear();
document.write(tomorrow_date);
Ответ 9
Ниже приведена комбинация ответов Родерика и Фила с двумя дополнительными условностями, которые учитывают однозначные месяцы/дни.
Многие API-интерфейсы, с которыми я работал, придирчивы к этому, и требуют, чтобы даты имели восемь цифр (например, "02022017" ) вместо 6 или 7 цифр, которые будет присвоен классу дат вы в некоторых ситуациях.
function nextDayDate() {
// get today date then add one
var nextDay = new Date();
nextDay.setDate(nextDay.getDate() + 1);
var month = nextDay.getMonth() + 1;
var day = nextDay.getDate();
var year = nextDay.getFullYear();
if (month < 10) { month = "0" + month }
if (day < 10) { day = "0" + day }
return month + day + year;
}
Ответ 10
//-----------Date Configuration march 18,2014----------------------
//alert(DateFilter);
var date = new Date();
y = date.getFullYear(), m = date.getMonth();
var EndDate = new Date();
switch (DateFilter) {
case 'today': var StartDate = EndDate; //todays date
break;
case 'yesterday':
var d = new Date();
var previousDate = new Date(d.getTime() - 1000 * 60 * 60 * 24);
var StartDate = new Date(previousDate.yyyymmdd()); //yesterday Date
break;
case 'tomorrow':
var d = new Date();
var NextDate = new Date(d.getTime() + 1000 * 60 * 60 * 24);
var StartDate = new Date(NextDate.yyyymmdd()); //tomorrow Date
break;
case 'thisweek': var StartDate = getMonday(new Date()); //1st date of this week
break;
case 'thismonth': var StartDate = new Date(y, m, 1); //1st date of this month
break;
case 'thisyear': var StartDate = new Date("01/01/" + date.getFullYear()); //1st date of this year
break;
case 'custom': //var StartDate = $("#txtFromDate").val();
break;
default:
var d = new Date();
var StartDate = new Date(d.getTime() - 30 * 24 * 60 * 60 * 1000); //one month ago date from now.
}
if (DateFilter != "custom") {
var SDate = $.datepicker.formatDate('@Config.DateFormat', StartDate); $("#txtFromDate").val(SDate);
var EDate = $.datepicker.formatDate('@Config.DateFormat', EndDate); $("#txtToDate").val(EDate);
}
//-----------Date Configuration march 18,2014----------------------