2012-03-20 84 views
1

我正在输入字符串,将它们转换为整数(我认为我需要),抓住月份值的前三个字符,将它降低,然后将它除以三来定义一个月。 现在令我困惑的部分是Date对象。我认为我做得对,我输入了所有内容,但它只发送提示输入前几个变量,并且不给我一个警告框,告诉我在d中存储了什么信息。日期对象的问题

var birthYear = parseInt(prompt ('Enter your birth year:')); 
var birthMonth = prompt ('Enter the name of the month of birth:'); 
var birthDay = parseInt(prompt ('Enter your day of birth as an integer:')); 
var milliDay = 1000*60*60*24; //Milliseconds in a day 
monthAbb = 'janfebmaraprmayjunjulaugsepoctnovdec'; 
chineseZod = 12; 
zodCycle = 1924; //Chinese Zodiac Cycle 
var monthArr = new Array(11); 


monthArr [0] = "jan"; 
monthArr [1] = "feb"; 
monthArr [2] = "mar"; 
monthArr [3] = "apr"; 
monthArr [4] = "may"; 
monthArr [5] = "jun"; 
monthArr [6] = "jul"; 
monthArr [7] = "aug"; 
monthArr [8] = "sep"; 
monthArr [9] = "oct"; 
monthArr [10] = "nov"; 
monthArr [11] = "dec"; 

var monthNum = monthAbb.indexOf(birthMonth.slice(0, 3).toLowerCase())/3; 
alert(monthNum); 
var d = new Date (birthYear, monthNum, birthDate); 
alert(d); 

回答

2

在以下行:

var d = new Date (birthYear, monthNum, birthDate); 

birthDateundefined。我觉得你的意思birthDay,因为这是你刚才用什么:

var birthDay = parseInt(prompt ('Enter your day of birth as an integer:')); 

这种事情通常是很容易的工作,如果你只是检查浏览器控制台......这里是什么,我只要看到一个屏幕截图当我试着在Chrome您的http://jsfiddle.net代码:

enter image description here

+0

哇。盯着代码3个小时显然打破了我的眼睛,哈哈。谢谢! – Chara 2012-03-20 13:18:17

+0

没问题,容易犯错!很高兴我能帮上忙 :) – 2012-03-20 13:24:01