Анализ даты и проверка в JavaScript - PullRequest
1 голос
/ 27 октября 2008

Как бы получить псевдокод ниже в JavaScript? Я хочу включить проверку даты во второй отрывок кода, где txtDate для BilledDate.

If ABS(billeddate – getdate)  >  31 then yesno “The date you have entered is more than a month from today, Are you sure the date is correct,”.


if (txtDate && txtDate.value == "")
{
    txtDate.focus();
    alert("Please enter a date in the 'Date' field.")
    return false;
}

Ответы [ 4 ]

1 голос
/ 27 октября 2008

Вообще говоря, вы работаете с объектами Date в javascript, и они должны быть построены со следующим синтаксисом:

    var myDate = new Date(yearno, monthno-1, dayno);
    //you could put hour, minute, second and milliseconds in this too

Осторожно, часть месяца является индексом, поэтому январь равен 0, февраль - 1, а декабрь - 11! -)

Затем вы можете извлечь все, что захотите, .getTime () возвращает количество миллисекунд с начала Unix-age, 1/1 1970 00:00, так что вы можете вычесть это значение, а затем посмотреть, если это значение больше, чем вы хотите:

//today (right now !-) can be constructed by an empty constructor
var today = new Date();
var olddate = new Date(2008,9,2);
var diff = today.getTime() - olddate.getTime();
var diffInDays = diff/(1000*60*60*24);//24 hours of 60 minutes of 60 second of 1000 milliseconds

alert(diffInDays);

Это вернет десятичное число, поэтому, возможно, вы захотите взглянуть на целочисленное значение:

alert(Math.floor(diffInDays));
1 голос
/ 27 октября 2008

Чтобы получить разницу дат в днях в простом JavaScript, вы можете сделать это следующим образом:

var billeddate = Date.parse("2008/10/27");
var getdate = Date.parse("2008/09/25");

var differenceInDays = (billeddate - getdate)/(1000*60*60*24)

Однако, если вы хотите получить больше контроля над манипулированием датами, я предлагаю вам использовать библиотеку дат, мне нравится DateJS , это действительно хорошо для анализа и манипулирования датами во многих форматах, и это действительно синтаксический сахар:

// What date is next thrusday?
Date.today().next().thursday();
//or
Date.parse('next thursday');

// Add 3 days to Today
Date.today().add(3).days();

// Is today Friday?
Date.today().is().friday();

// Number fun
(3).days().ago();
0 голосов
/ 27 октября 2008

Вы можете использовать это, чтобы проверить действительную дату

function IsDate(testValue) {

        var returnValue = false;
        var testDate;
        try {
            testDate = new Date(testValue);
            if (!isNaN(testDate)) {
                returnValue = true;            
            }
            else {
                returnValue = false;
            }
        }
        catch (e) {
            returnValue = false;
        }
        return returnValue;
    }

И вот как вы можете манипулировать датами JS. Вы в основном создаете объект даты сейчас (getDate), добавляете 31 день и сравниваете его с введенной датой

function IsMoreThan31Days(dateToTest) {

  if(IsDate(futureDate)) {
      var futureDateObj = new Date();
      var enteredDateObj = new Date(dateToTest);

      futureDateObj.setDate(futureDateObj.getDate() + 31); //sets to 31 days from now.
      //adds hours and minutes to dateToTest so that the test for 31 days is more accurate.
      enteredDateObj.setHours(futureDateObj.getHours()); 
      enteredDateObj.setMinutes(futureDateObj.getMinutes() + 1);

      if(enteredDateObj >= futureDateObj) {
        return true;
      }
      else {
        return false;
      }
   }
}
0 голосов
/ 27 октября 2008

Привет и хорошего дня всем

Вы можете попробовать выражения Refular для анализа и проверки формата даты

вот URL, который вы можете посмотреть некоторые примеры и как использовать

http://www.javascriptkit.com/jsref/regexp.shtml

Очень очень простой шаблон: \ d {2} / \ d {2} / \ d {4}

для ММ / дд / гггг или дд / мм / гггг

Не больше .... пока пока

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...