JavaScript日期

JavaScript日期,javascript,function,date,Javascript,Function,Date,如何将代码文档。写入(“直到指定日期”)更改为写入消息(日期)中的日期?此外,writeMessage(date)中的日期也没有正确通过(只有年份通过)。感谢您对修复此问题的任何帮助 函数beginMessage(数字、时间类型){ 如果(数字>0){ 文件。填写(“有”); 文件。书写(编号); 文件。填写(“”); document.write(时间类型); 文件。填写(“直到指定日期”); 文件。写(“”); }否则{ 数字=-数字; 文件。填写(“已存在”); 文件。书写(编号); 文

如何将代码
文档。写入(“直到指定日期”)
更改为
写入消息(日期)
中的日期?此外,
writeMessage(date)
中的日期也没有正确通过(只有年份通过)。感谢您对修复此问题的任何帮助

函数beginMessage(数字、时间类型){
如果(数字>0){
文件。填写(“有”);
文件。书写(编号);
文件。填写(“”);
document.write(时间类型);
文件。填写(“直到指定日期”);
文件。写(“
”); }否则{ 数字=-数字; 文件。填写(“已存在”); 文件。书写(编号); 文件。填写(“”); document.write(时间类型); 文件。填写(“自指定日期起”); 文件。写(“
”); } 如果((时间类型===未定义的| |数字===未定义的| | isNaN(数字))){ document.body.innerHTML=“”; } } 函数writeMessage(日期){ clearDocument(); var today=新日期(); var calculateDate=新日期(日期); var millides=calculateDate.getTime()-today.getTime(); beginMessage(毫秒,“毫秒”); var秒=毫秒/1000; 秒=parseInt(秒); beginMessage(秒,“秒”); var分钟=秒/60; 分钟=parseInt(分钟); beginMessage(分钟,“分钟”); var小时=分钟/60; 小时=parseInt(小时); beginMessage(小时,“小时”); var天数=小时/24; 天=parseInt(天); beginMessage(天,“天”); var周=天/7; 周=parseInt(周); beginMessage(周,“周”); 如果((日期==未定义| | isNaN(日期))){ document.body.innerHTML=“”; } setTimeout(“writeMessage(““+date+”);”,1); } 函数clearDocument(){ document.body.innerHTML=“”; }
书面信息(“2017-07-04”)正如我在评论中所写:

// 'global' variable that both beginMessage and writeMessage can access
var writtenDate = null;

function beginMessage(number, timeType) {
  if (number > 0) {
  ...
  document.write(" until " + writtenDate);
  ...
} else {
  ...
}
}

function writeMessage(date) {
  // save the date sent to this function is the variable, so beginMessage can see it as well.
  writtenDate = date;
  ...
}

function clearDocument() {
  document.body.innerHTML = "";
}

writeMessage("2017-07-04");

// OR preferably: an extra parameter.

function beginMessage(number, timeType, designatedDate) {
  if (number > 0) {
  ...
  document.write(" until " + designatedDate);
  ...
} else {
  ...
}

function writeMessage(date) {
  ...
  beginMessage(milliseconds, "milliseconds", date);
  ...
  beginMessage(seconds, "seconds", date);
  ...
  beginMessage(minutes, "minutes", date);
  ...
  beginMessage(hours, "hours", date);
  ...
  beginMessage(days, "days", date);
  ...
  beginMessage(weeks, "weeks", date);
  ...
}

...

writeMessage("2017-07-04");

我在评论中写道:

// 'global' variable that both beginMessage and writeMessage can access
var writtenDate = null;

function beginMessage(number, timeType) {
  if (number > 0) {
  ...
  document.write(" until " + writtenDate);
  ...
} else {
  ...
}
}

function writeMessage(date) {
  // save the date sent to this function is the variable, so beginMessage can see it as well.
  writtenDate = date;
  ...
}

function clearDocument() {
  document.body.innerHTML = "";
}

writeMessage("2017-07-04");

// OR preferably: an extra parameter.

function beginMessage(number, timeType, designatedDate) {
  if (number > 0) {
  ...
  document.write(" until " + designatedDate);
  ...
} else {
  ...
}

function writeMessage(date) {
  ...
  beginMessage(milliseconds, "milliseconds", date);
  ...
  beginMessage(seconds, "seconds", date);
  ...
  beginMessage(minutes, "minutes", date);
  ...
  beginMessage(hours, "hours", date);
  ...
  beginMessage(days, "days", date);
  ...
  beginMessage(weeks, "weeks", date);
  ...
}

...

writeMessage("2017-07-04");

Shilly得到了大部分答案。关于:

只有一年过去了

当您在页面完成加载后调用document.write时,它首先清除整个文档,包括调用它的脚本。因此,在某个时刻,文档完成加载,您将删除脚本,使其无法再运行。您可以看到此时写入页面的内容

因此:

  • 不要使用document.write,以其他方式显示输出(例如element.textContent)
  • 如果必须使用它,请构造单个字符串并使用单个document.write,同时加载页面
  • 除非要清除整个文档,否则不要在页面加载后调用它

  • 最后,你的日期算术被打破了<代码>新日期(“2017-07-04”)
    将字符串解析为UTC,因此时差将根据主机系统的时区偏移量进行调整。如果设置为UTC+0000,则可以,但不能设置为其他值。

    Shilly给出了大部分答案。关于:

    只有一年过去了

    当您在页面完成加载后调用document.write时,它首先清除整个文档,包括调用它的脚本。因此,在某个时刻,文档完成加载,您将删除脚本,使其无法再运行。您可以看到此时写入页面的内容

    因此:

  • 不要使用document.write,以其他方式显示输出(例如element.textContent)
  • 如果必须使用它,请构造单个字符串并使用单个document.write,同时加载页面
  • 除非要清除整个文档,否则不要在页面加载后调用它

  • 最后,你的日期算术被打破了<代码>新日期(“2017-07-04”)将字符串解析为UTC,因此时差将根据主机系统的时区偏移量进行调整。如果设置为UTC+0000,则可以,但不能设置为其他值。

    您必须使用beginMessage可以读取的内容。因此,要么是一个(全局)变量,要么是beginMessage中的另一个参数:
    beginMessage(毫秒,“毫秒”,日期)
    文档。write
    是20世纪的产物,对于这种输出,它可能根本没有用处。谢谢您的帮助!你必须使用beginMessage可以阅读的东西。因此,要么是一个(全局)变量,要么是beginMessage中的另一个参数:
    beginMessage(毫秒,“毫秒”,日期)
    文档。write
    是20世纪的产物,对于这种输出,它可能根本没有用处。谢谢您的帮助!