Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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 我想把一个变量从promt框传回日期字符串_Javascript_Html - Fatal编程技术网

Javascript 我想把一个变量从promt框传回日期字符串

Javascript 我想把一个变量从promt框传回日期字符串,javascript,html,Javascript,Html,我想把一个变量从promt框传回日期字符串。因此,如果一个人加上5天,日期将增加5天。我是javascript新手,这是我的第一个测试脚本,您可以在回答中列出任何资源,我将阅读 <html> <head> <script type="text/javascript"> var currentTime = new Date(); var month = currentTime.getMonth() + 1; var day

我想把一个变量从promt框传回日期字符串。因此,如果一个人加上5天,日期将增加5天。我是javascript新手,这是我的第一个测试脚本,您可以在回答中列出任何资源,我将阅读

<html>

 <head>
   <script type="text/javascript">
     var currentTime = new Date();
     var month = currentTime.getMonth() + 1;
     var day = currentTime.getDate();
     var year = currentTime.getFullYear();
     var dateString = "Today's Date " + month + "/" + day + "/" + year;
     function loadDate(){
       document.getElementById('dateSpan').innerHTML = dateString;
     }

   </script>

 </head>
 <body onload='loadDate()'>
   <form name=myform>
     <span id='dateSpan'></span><input type=button value="add days" onclick="var name=prompt('How many days do you want to add?','5 or 6')"/>
   </form>
 </body>

var currentTime=新日期();
var month=currentTime.getMonth()+1;
var day=currentTime.getDate();
var year=currentTime.getFullYear();
var dateString=“今天的日期”+月+“/”+日+“/”+年;
函数loadDate(){
document.getElementById('dateSpan')。innerHTML=dateString;
}

下面的内容应该会有所帮助。请注意,它不进行任何验证或检查(元素中的日期字符串是否正确?用户是否输入了数字?),因此您需要添加所有这些内容并处理错误

function updateDate(el) {
  // get the text of the element
  var text = el.innerHTML;

  // Convert to a date object
  var b = text.split('-');
  var date = new Date(b[0], b[1] - 1, b[2]);

  // Ask for days to add
  var toAdd = prompt('How many days to add?');

  // Adjust date
  date.setDate(date.getDate() + Number(toAdd));

  // Write date to page
  el.innerHTML = date.getFullYear() + '-' + 
                 addZ(date.getMonth() + 1) + '-' +
                 addZ(date.getDate());

  // Helper just for this function
  function addZ(n) {
    return (n < 10? '0' : '') + n;
  }
}
函数更新日期(el){
//获取元素的文本
var text=el.innerHTML;
//转换为日期对象
var b=text.split('-');
var日期=新日期(b[0],b[1]-1,b[2]);
//请求添加天数
var toAdd=prompt('要添加多少天?');
//调整日期
date.setDate(date.getDate()+数字(toAdd));
//将日期写入页面
el.innerHTML=date.getFullYear()+'-'+
addZ(date.getMonth()+1)+'-'+
addZ(date.getDate());
//仅用于此函数的帮助程序
函数addZ(n){
返回(n<10?'0':'')+n;
}
}
以及一些相关的HTML:

<span id="dateSpan" onclick="updateDate(this)">2012-05-22</span>
2012-05-22
还要注意的是,innerHTML也会获取所有HTML内容,但对于类似的内容,它应该是好的。如果只需要文本,则使用或基于支持的功能测试

编辑
添加了一个HTML片段,使其正常工作。请注意,日期是ISO8601的缩写形式:年-月-日。

我同意使用date.js库

这使得日期更容易处理,而且有很好的文档记录

一旦你有了天数,你就可以轻松地把日期提前

//Assuming Xdays is a var with your number of days.
var today = Date.today();
var past = Date.today().add(-Xdays).days();
var future = Date.today().add(Xdays).days();

//format to a string
Date.today().toString("d-MMM-yyyy"); // 19-Nov-2007

格式m/d/y仅用于世界人口的一小部分,您应使用明确的格式(如2012年3月2日)或ISO8601标准格式(如2012-03-02)。