Javascript Getmonth()、Getday()和Getyear()不返回值
谢谢你迄今为止的帮助!我真的很感激它,因为我正在努力使用Javascript 基本上,当用户定义的持续时间添加到用户定义的日期时,我正在构建一个日期计算器。我的日期看起来不错,但格式很长(“2013年1月2日星期三00:00:00 GMT+0800(HKT)),其中,我希望返回格式为2013年1月2日。我试图将日期的不同部分分解为单独的变量,但是,当我运行脚本时,变量dayFormatted、monthFormatted和yearFormatted没有显示任何值 有什么想法吗 JavascriptJavascript Getmonth()、Getday()和Getyear()不返回值,javascript,date,datetime,Javascript,Date,Datetime,谢谢你迄今为止的帮助!我真的很感激它,因为我正在努力使用Javascript 基本上,当用户定义的持续时间添加到用户定义的日期时,我正在构建一个日期计算器。我的日期看起来不错,但格式很长(“2013年1月2日星期三00:00:00 GMT+0800(HKT)),其中,我希望返回格式为2013年1月2日。我试图将日期的不同部分分解为单独的变量,但是,当我运行脚本时,变量dayFormatted、monthFormatted和yearFormatted没有显示任何值 有什么想法吗 Javascrip
<script type="text/javascript">
function setExpDate(){
var formDate = document.getElementById('startDate').value;
var number = +document.getElementById('days').value;
// set number of days to add
var interval = number;
var startDate = new Date(Date.parse(formDate));
var expDate = startDate;
expDate.setDate(startDate.getDate() + interval);
var monthFormatted = expDate.getMonth();
var dayFormatted = expDate.getDay();
var yearFormatted = expDate.getYear();
document.getElementById('total').innerHTML = monthFormatted;
document.getElementById('daysdays').innerHTML = dayFormatted;
document.getElementById('year').innerHTML = yearFormatted;
};
</script>
</head>
函数setExpDate(){
var formDate=document.getElementById('startDate')。值;
var number=+document.getElementById('days').value;
//设置要添加的天数
var区间=个数;
var startDate=新日期(Date.parse(formDate));
var expDate=起始日期;
expDate.setDate(startDate.getDate()+间隔);
var monthFormatted=expDate.getMonth();
var dayFormatted=expDate.getDay();
var yearFormatted=expDate.getYear();
document.getElementById('total').innerHTML=monthFormatted;
document.getElementById('daysdays')。innerHTML=daysFormatted;
document.getElementById('year')。innerHTML=yearFormatted;
};
HTML
1.
2.
3.
4.
5.
6.
7.
你说“没有显示任何值”是什么意思?你试过调试这些变量吗?它们有什么值?只要输入了有效的日期就可以了。旁注:新建日期(date.parse(formDate))
编写新建日期(formDate)还有很长的路要走
如果formDate
是一个字符串。它们使用完全相同的解析规则。您传递的值来自startDate和onchange of days的模糊值,但您的函数不接受值。调用setExpDate()
而不是setExpDate(this.value)
。getYear也不推荐使用;您应该使用getFullYear()insteadIt实际上并不会以这种方式影响此代码,但需要注意的是,var expDate=startDate;
并不是复制startDate
的值,而是在expDate
中存储对startDate
的引用它也在更改startDate
的值。如果要复制日期,只需将原始日期对象传递到new date()
,即var expDate=new date(startDate);
。
<input type="text" size="10" maxlength="10" id="startDate" name="startDate" onblur="setExpDate(this.value)">
<select name="days" id="days" onchange="setExpDate(this.value)">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
</select>
<div id="total"></div> <br/><div id="daysdays"></div><div id="year"></div>
</body>
</html>