Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Getmonth()、Getday()和Getyear()不返回值_Javascript_Date_Datetime - Fatal编程技术网

Javascript Getmonth()、Getday()和Getyear()不返回值

Javascript 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

谢谢你迄今为止的帮助!我真的很感激它,因为我正在努力使用Javascript

基本上,当用户定义的持续时间添加到用户定义的日期时,我正在构建一个日期计算器。我的日期看起来不错,但格式很长(“2013年1月2日星期三00:00:00 GMT+0800(HKT)),其中,我希望返回格式为2013年1月2日。我试图将日期的不同部分分解为单独的变量,但是,当我运行脚本时,变量dayFormatted、monthFormatted和yearFormatted没有显示任何值

有什么想法吗

Javascript

<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>