Используя JavaScript, как я удостоверяюсь, диапазон дат допустим?

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

15
задан rjzii 7 June 2011 в 12:11
поделиться

3 ответа

Это - на самом деле проблема, которую я видел, подходят, прежде много в моих работах и следующем бите кода мое решение проблемы.

// checkDateRange - Checks to ensure that the values entered are dates and 
//     are of a valid range. By this, the dates must be no more than the 
//     built-in number of days appart.
function checkDateRange(start, end) {
   // Parse the entries
   var startDate = Date.parse(start);
   var endDate = Date.parse(end);
   // Make sure they are valid
    if (isNaN(startDate)) {
      alert("The start date provided is not valid, please enter a valid date.");
      return false;
   }
   if (isNaN(endDate)) {
       alert("The end date provided is not valid, please enter a valid date.");
       return false;
   }
   // Check the date range, 86400000 is the number of milliseconds in one day
   var difference = (endDate - startDate) / (86400000 * 7);
   if (difference < 0) {
       alert("The start date must come before the end date.");
       return false;
   }
   if (difference <= 1) {
       alert("The range must be at least seven days apart.");
       return false;
    }
   return true;
}

Теперь пара вещей отметить об этом коде, эти Date.parse функция должна работать на большинство входные типы, но, как было известно, имела проблемы с некоторыми форматами, такими как "YYYY MM DD", таким образом, необходимо протестировать это перед использованием его. Однако я, кажется, вспоминаю, что большинство браузеров интерпретирует строку даты, данную Date.parse, основанному на компьютерных настройках региона.

кроме того, множитель для 86400000 должен быть тем, что диапазон дней, которые Вы ищете. Таким образом, при поиске дат, которые на расстоянии по крайней мере в одну неделю затем, это должно быть семь.

16
ответ дан 1 December 2019 в 02:20
поделиться

Таким образом, если я понимаю currenctly, необходимо посмотреть, если одна дата больше, чем другой.

function ValidRange(date1,date2)
{
   return date2.getTime() > date1.getTime();
}

затем необходимо проанализировать строки, которые Вы получаете от UI, с Date.parse, как это:

ValidRange(Date.parse('10-10-2008'),Date.parse('11-11-2008'));

, который помогает?

9
ответ дан 1 December 2019 в 02:20
поделиться
var myDate = new Date(2008, 9, 16);

// is myDate between Sept 1 and Sept 30?

var startDate = new Date(2008, 9, 1);
var endDate = new Date(2008, 9, 30);

if (startDate < myDate && myDate < endDate) {
    alert('yes');
    // myDate is between startDate and endDate
}

существует множество форматов, можно передать Дате () конструктора для построения даты. Можно также создать новую дату с текущим временем:

var now = new Date();

и набор различные свойства на нем:

now.setYear(...);
now.setMonth(...);
// etc

См. http://www.javascriptkit.com/jsref/date.shtml или Google для получения дополнительной информации.

4
ответ дан 1 December 2019 в 02:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: