Как мне проверить между двумя датами в текущем месяце?
Например, я хочу проверить период с 1 по 8 января независимо от года (я британец, поэтому мои даты (дд / мм / гггг):
var date = new Date(); //This is the current date
date1 = new Date('01, 01, date.getFullYear()');
date2 = new Date('08, 01, date.getFullYear()');
if(date >= date1 && date <= date2) {
// Do Something
} else {
// Don't do something
}
Или другой пример, скажем, Хэллоуин:
var date = new Date();
date1 = new Date('31, date.getMonth(), date.getFullYear()');
if(date == date1) {
// Do Something
} else {
// Don't do something
}
Я не совсем уверен, как отформатировать его в Javascript, любая помощь будет принята с благодарностью!
2 ответа
Несколько моментов ...
- Параметры
new Date
(год, месяц, день) независимо от ваших локальных настроек. - Одинарные кавычки вокруг параметров неправильный синтаксис.
- Месяцы в JavaScript имеют нулевой индекс, поэтому январь равен нулю.
Итак, ваш date2
должен быть date2 = new Date(date.getFullYear(), 0, 8)
.
Также возьмите за правило ставить var
перед объявлением переменных. Не беспокойтесь, почему именно сейчас; вы узнаете об этом по ходу дела.
Итак, ваш код должен выглядеть примерно так:
var date = new Date();
var date1 = new Date(date.getFullYear(), 0, 1);
var date2 = new Date(date.getFullYear(), 0, 8);
if(date >= date1 && date <= date2) {
// this part was correct :)
//Do Something
}
Вы неправильно инициализируете объекты Date. Если вы хотите инициализировать дату строкой, эта строка должна иметь формат, который может обрабатываться Date.parse.
Однако строка, которую вы передаете, выглядит так, как будто вы вообще не хотите передавать какие-либо строки. Так что просто опустите одинарные кавычки, например:
var date1 = new Date(date.getFullYear(), 0, 1);
Обратите внимание, что первый аргумент - это год, второй - месяц (отсчитывается от нуля, поэтому 0 - январь), а третий - день месяца.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.