#javascript #jquery
#javascript #jquery
Вопрос:
Пока это то, что я сделал. Но результат отличается от того, что я ожидаю, за исключением 3-го примера, но он отображает только 1 date
не всю дату.
var datess = new Date();
var ndate = new Date(datess.getDate() 1);
var ndate2 = datess.getDate() 1;
document.getElementById("newdate").innerHTML = datess;
document.getElementById("newdate1").innerHTML = ndate;
document.getElementById("newdate2").innerHTML = ndate2;
<div id = "newdate">
</div>
<div id = "newdate1">
</div>
<div id = "newdate2">
</div>
Чего я хочу добиться, так это того, что после определения, есть ли у него выходные, он перейдет в a variable
, и эта переменная будет использоваться в цикле.
Ответ №1:
Первое, что нам нужно знать, это то, что выходные состоят из дат:
0 - Sunday
6 - Saturday
Теперь нам нужно проверить, содержат ли следующие три дня это. Возможные значения относятся к среде. Итак, вам нужно проверить:
if (dateObj.getDay() >= 3)
return true;
Вам не нужно проверять наличие других, потому что диапазон есть 0 - 6
, и этот код охватывает все. Даже если вы укажете воскресенье, которое имеет значение 0
, оно говорит false
, что понедельник не является выходным.
<input type="date" id="dtobj" placeholder="Enter a Date" />
<button onclick="if ((new Date(dtobj.value)).getDay() >= 3) alert('Weekend!'); else alert('No Weekend!');">Check</button>
Приведенный выше код отлично работает в Chrome. Пожалуйста, обратите внимание, что это Date
относится к клиентской машине, а не к серверу.
Ответ №2:
var datess = new Date();
var ndate = new Date(datess.getTime() 86400 * 1000);
var ndate2 = new Date(datess.getTime() 86400 * 2 * 1000);
document.getElementById("newdate").innerHTML = datess check_weekend(datess);
document.getElementById("newdate1").innerHTML = ndate check_weekend(ndate);
document.getElementById("newdate2").innerHTML = ndate2 check_weekend(ndate2);
function check_weekend(t) {
if (t.getDay() == 0 || t.getDay() == 6) {
return "(Yes)";
} else {
return "(No)"
}
}
<div id = "newdate">
</div>
<div id = "newdate1">
</div>
<div id = "newdate2">
</div>
Ответ №3:
var today = new Date();
var tomorrow = new Date(today.getTime() 24 * 60 * 60 * 1000);
var afterTomorrow = new Date(tomorrow.getTime() 24 * 60 * 60 * 1000);
document.getElementById("newdate").innerHTML = today;
document.getElementById("newdate1").innerHTML = tomorrow;
document.getElementById("newdate2").innerHTML = afterTomorrow;
//getDay() return day number
//0 - Sunday
//1 - Monday
//2 - Tuesday
//...
if (tomorrow.getDay() == 0) {
console.log("Tomorrow is sunday !");
} else if (tomorrow.getDay() == 6) {
console.log("Tomorrow is Saturday !");
}
//Do same with after tomorrow
<div id="newdate"></div>
<div id="newdate1"></div>
<div id="newdate2"></div>
Комментарии:
1. Это что-нибудь объясняет?
2. @PraveenKumar Он делает то, что пытался сделать OP
3. @Weedoze да. Но могу ли я спросить, зачем использовать время? не дата?
4. @TrafalgarDLaw Это способ получить полную дату завтра
5. @Weedoze спасибо. Я подумаю о том, как я могу использовать этот метод в своем циклическом коде.
Ответ №4:
Вам нужно посмотреть на методы даты.
Вы не можете добавить 1 к дате, вам нужно использовать его методы «get» / «set».
var d = new Date()
d.getFullYear() // 2016
d.getMonth() // 9
d.getDate() // 11
Если вы используете d.getDay()
его, он вернет день недели, и это то, что вам нужно, чтобы найти выходные.
Ответ №5:
Как насчет этого:
var DayToCheck = new Date();
if (DayToCheck.getDay() == 6 || DayToCheck.getDay() == 0) alert('DayToCheck is weekend!');