View Full Version : Formatting two digit years.

07-11-2006, 12:24 AM
Formatting two digit years.
I m developing an app and one of the requirements is that dates that are entered with two digit years should be formatted to four digit years and it be in this century, so 01/01/01 would become 01/01/2001. I tried the getFullYear() function but it defaults 01 to 1901. Is there something else I can use?


Philip M
07-11-2006, 07:24 AM
Try adding 100 to 1901 to get 2001.

var now = new Date();
var yynow = now.getYear(); // IE returns 2006. Netscape and Opera return 106.

07-11-2006, 11:33 AM
I'm not sure that will work, I probably didn't explain myself too clearly in my post. The user will be able to enter any date, so it could be a 2 digit year or 4 digit year. If it's a four digit year we are leaving it be. I guess the problem I'm having is how to know when they've entered a two digit or four digit year. In my code
I'm just creating a date object and then getting the month, day, year from that.


07-11-2006, 12:17 PM
Select Lists are the only way to be sure but

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<script language="JavaScript" type="text/javascript">

function CkYear(obj){
var val =obj.value.split('/');
if (val.length!=3){ alert('incorrect format'); return; }
for (var zxc0=0;zxc0<val.length;zxc0++){
if (isNaN(val[zxc0])){
alert('incorrect format'); return;
if (val[2].length==2){
if (val[2].length!=4){
alert('incorrect year format'); return;
if (val[1]<1||val[1]>12){
alert('incorrect month format'); return;
if (val[0]<1||val[0]>zxcDinM(val[2],val[1])){
alert('incorrect day format'); return;

function zxcDinM(zxcyr,zxcm){
return new Date(zxcyr,zxcm,1,-1).getDate();


<input value="01/02/2001" onblur="CkYear(this);" >


see also


07-11-2006, 12:34 PM
Thanks for all the help