Highlights
All Snippets
Top 100 Snippets
Librarians
gbCodeLib

By Language
VB6
JavaScript
Perl
HTML
SQL
Java
DOS

GBIC >> Source Code >> JavaScript >> Snippet

Date selection


< html >
< head >
< script >
<!-- Created by : Lee Hinder, lee.hinder@ntlworld.com -->

<!-- Begin
//set todays date
Now = new Date ();
NowDay = Now.getDate();
NowMonth = Now.getMonth();
NowYear = Now.getYear();
if (NowYear < 2000) NowYear += 1900; //for Netscape

//function for returning how many days there are in a month including leap years
function DaysInMonth(WhichMonth, WhichYear)
{
  var DaysInMonth = 31;
  if (WhichMonth == "Apr" || WhichMonth == "Jun" || WhichMonth == "Sep" || WhichMonth == "Nov" ) DaysInMonth = 30;
  if (WhichMonth == "Feb" && (WhichYear / 4) != Math .floor(WhichYear / 4)) DaysInMonth = 28;
  if (WhichMonth == "Feb" && (WhichYear / 4) == Math .floor(WhichYear / 4)) DaysInMonth = 29;
  return DaysInMonth;
}

//function to change the available days in a months
function ChangeOptionDays(Which)
{
 DaysObject = eval ( "document.Form1." + Which + "Day" );
 MonthObject = eval ( "document.Form1." + Which + "Month" );
 YearObject = eval ( "document.Form1." + Which + "Year" );

 Month = MonthObject[MonthObject.selectedIndex].text;
 Year = YearObject[YearObject.selectedIndex].text;

 DaysForThisSelection = DaysInMonth(Month, Year);
 CurrentDaysInSelection = DaysObject.length;
  if (CurrentDaysInSelection > DaysForThisSelection)
  {
    for (i = 0; i < (CurrentDaysInSelection - DaysForThisSelection); i ++ )
    {
     DaysObject.options[DaysObject.options.length - 1] = null
    }
  }
  if (DaysForThisSelection > CurrentDaysInSelection)
  {
    for (i = 0; i < (DaysForThisSelection - CurrentDaysInSelection); i ++ )
    {
     NewOption = new Option(DaysObject.options.length + 1);
     DaysObject.add(NewOption);
    }
  }
    if (DaysObject.selectedIndex < 0) DaysObject.selectedIndex == 0;
}

//function to set options to today
function SetToToday(Which)
{
 DaysObject = eval ( "document.Form1." + Which + "Day" );
 MonthObject = eval ( "document.Form1." + Which + "Month" );
 YearObject = eval ( "document.Form1." + Which + "Year" );

 YearObject[0].selected = true ;
 MonthObject[NowMonth].selected = true ;

 ChangeOptionDays(Which);

 DaysObject[NowDay - 1].selected = true ;
}

//function to write option years plus x
function WriteYearOptions(YearsAhead)
{
 line = "" ;
  for (i = 0; i < YearsAhead; i ++ )
  {
   line += "<OPTION>" ;
   line += NowYear + i;
  }
  return line;
}
//  End -->
</ script >


</ head >

< body Background = .. / graphics / grayback.jpg onLoad = "SetToToday('FirstSelect');" >
< center >< BR >< BR >< BR >
< FORM name = "Form1" >
< SELECT name = "FirstSelectDay" >
  < OPTION > 1
  < OPTION > 2
  < OPTION > 3
  < OPTION > 4
  < OPTION > 5
  < OPTION > 6
  < OPTION > 7
  < OPTION > 8
  < OPTION > 9
  < OPTION > 10
  < OPTION > 11
  < OPTION > 12
  < OPTION > 13
  < OPTION > 14
  < OPTION > 15
  < OPTION > 16
  < OPTION > 17
  < OPTION > 18
  < OPTION > 19
  < OPTION > 20
  < OPTION > 21
  < OPTION > 22
  < OPTION > 23
  < OPTION > 24
  < OPTION > 25
  < OPTION > 26
  < OPTION > 27
  < OPTION > 28
  < OPTION > 29
  < OPTION > 30
  < OPTION > 31

</ SELECT >
< SELECT name = "FirstSelectMonth" onchange = "ChangeOptionDays('FirstSelect')" >
  < OPTION > Jan
  < OPTION > Feb
  < OPTION > Mar
  < OPTION > Apr
  < OPTION > May
  < OPTION > Jun
  < OPTION > Jul
  < OPTION > Aug
  < OPTION > Sep
  < OPTION > Oct
  < OPTION > Nov
  < OPTION > Dec
</ SELECT >
< SELECT name = "FirstSelectYear" onchange = "ChangeOptionDays('FirstSelect')" >

  < script >
  document.write(WriteYearOptions(50));
  </ SCRIPT >
</ SELECT >
</ FORM >

</ center >
</ BODY >
</ html >

//Thanks to David Pye of JavaScript Vault for his contribution.