Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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显示接下来4天的日期?_Javascript - Fatal编程技术网

如何用javascript显示接下来4天的日期?

如何用javascript显示接下来4天的日期?,javascript,Javascript,我一直在尝试以“月日”(如6月28日)的格式获取我正在为未来4天制作的应用程序的日期。以下是我一直在编写的代码,基于我第二天找到的解决方案: now.setDate(now.getDate() + 1) 它会返回一个历元时间戳 let now = new Date(); function timeConverter(epoch) { let a = new Date(epoch * 1000); let months = [ "Jan", "Feb", "Mar",

我一直在尝试以“月日”(如6月28日)的格式获取我正在为未来4天制作的应用程序的日期。以下是我一直在编写的代码,基于我第二天找到的解决方案:

now.setDate(now.getDate() + 1)
它会返回一个历元时间戳

let now = new Date();

function timeConverter(epoch) {
let a = new Date(epoch * 1000);
let months = [
    "Jan",
    "Feb",
    "Mar",
    "Apr",
    "May",
    "Jun",
    "Jul",
    "Aug",
    "Sep",
    "Oct",
    "Nov",
    "Dec"
  ];

  let month = months[a.getMonth()];
  let date = a.getDate();
  let time = month + " " + date;
  return time;
}

let tomorrow = now.setDate(now.getDate() + 1);

let tomorrowDay = document.querySelector(".next1");
tomorrowDay.innerHTML = timeConverter(tomorrow);

let afterTomorrow = now.setDate(now.getDate() + 2);

let aftertomorrowDay = document.querySelector(".next2");
aftertomorrowDay.innerHTML = timeConverter(afterTomorrow);
以此类推,在接下来的两天里我加上+3和+4。这会给我随机的日期,比如分别是7月19日、1月9日、3月27日和3月10日。我不知道代码到底出了什么问题,但有一个细节,就是当我在控制台上记录今天的日期时

let now = new Date();
console.log(now)

它告诉我是7月8日,6月28日。我不知道这是不是把一切都搞砸了,还是代码错了。有人能帮我提出改进代码的建议吗?或者有什么方法可以在接下来的4天内以这种格式获得正确的天数?

使用函数from here(),我可以修改您的代码以使其正常工作。一个主要问题是添加epoch,而不仅仅是传递日期对象并使用它

功能时间转换器(日期){
让月份=[
“简”,
“二月”,
“三月”,
“四月”,
“五月”,
“六月”,
“七月”,
“八月”,
“九月”,
“十月”,
“11月”,
“十二月”
];
设月=月[thedate.getMonth()];
让date=thedate.getDate();
让时间=月份+“”+日期;
返回时间;
}
Date.prototype.addDays=函数(天){
var date=新日期(this.valueOf());
date.setDate(date.getDate()+天);
返回日期;
}
变量日期=新日期();
日志(timeConverter(date.addDays(1));

日志(timeConverter(date.addDays(2))使用函数from here(),我可以修改您的代码以使其正常工作。一个主要问题是添加epoch,而不仅仅是传递日期对象并使用它

功能时间转换器(日期){
让月份=[
“简”,
“二月”,
“三月”,
“四月”,
“五月”,
“六月”,
“七月”,
“八月”,
“九月”,
“十月”,
“11月”,
“十二月”
];
设月=月[thedate.getMonth()];
让date=thedate.getDate();
让时间=月份+“”+日期;
返回时间;
}
Date.prototype.addDays=函数(天){
var date=新日期(this.valueOf());
date.setDate(date.getDate()+天);
返回日期;
}
变量日期=新日期();
日志(timeConverter(date.addDays(1));

日志(timeConverter(date.addDays(2))
您不需要
时间转换器中的
*1000
:由
.setDate(现在是.getDate()+1)返回的数字已在毫秒内

还有Eduard的答案:

另外,奇怪的是,你的主机今天被记录为7月8日。你的系统时钟关了吗?你能确认只输入这些行吗

let now = new Date();
console.log(now)

七月八日?这似乎是一个单独的问题。

您不需要
时间转换器中的
*1000
:由
.setDate返回的数字(现在是.getDate()+1)已在毫秒内

还有Eduard的答案:

另外,奇怪的是,你的主机今天被记录为7月8日。你的系统时钟关了吗?你能确认只输入这些行吗

let now = new Date();
console.log(now)

七月八日?这似乎是一个单独的问题。

在下面的一行中,您将现在的日期更改为明天
让明天=now.setDate(now.getDate()+1)

因此,当您尝试设置“后天”日期时,您使用的是“新”的“现在”日期
letextromorrow=now.setDate(now.getDate()+2)

下面的代码工作正常

var today = new Date();
var tomorrow = new Date();
var afterTomorrow = new Date();
var afterAfterTomorrow = new Date();
var afterAfterAfterTomorrow = new Date();

tomorrow.setDate(today.getDate()+1);
afterTomorrow.setDate(today.getDate()+2);
afterAfterTomorrow.setDate(today.getDate()+3);
afterAfterAfterTomorrow.setDate(today.getDate()+4);

在下一行中,您将“现在”日期更改为“明天”
让明天=now.setDate(now.getDate()+1)

因此,当您尝试设置“后天”日期时,您使用的是“新”的“现在”日期
letextromorrow=now.setDate(now.getDate()+2)

下面的代码工作正常

var today = new Date();
var tomorrow = new Date();
var afterTomorrow = new Date();
var afterAfterTomorrow = new Date();
var afterAfterAfterTomorrow = new Date();

tomorrow.setDate(today.getDate()+1);
afterTomorrow.setDate(today.getDate()+2);
afterAfterTomorrow.setDate(today.getDate()+3);
afterAfterAfterTomorrow.setDate(today.getDate()+4);

我会使用moment.js,因为它允许格式化和其他经过良好测试的日期函数

函数fnProcess(){
var startdate=力矩();
var new_date=[];
var sHTML=“”;
对于(i=0;i<5;i++){
新的日期[i]=时刻()。添加(i,“天”)。格式(“MMM DD”);
sHTML=sHTML+“”+new_date[i]+“”;
}
sHTML=sHTML+“”;
$(“#结果”).html(sHTML);
}
#结果{填充:20px;}

过程
我会使用moment.js,因为它允许格式化和其他经过良好测试的日期函数

函数fnProcess(){
var startdate=力矩();
var new_date=[];
var sHTML=“”;
对于(i=0;i<5;i++){
新的日期[i]=时刻()。添加(i,“天”)。格式(“MMM DD”);
sHTML=sHTML+“”+new_date[i]+“”;
}
sHTML=sHTML+“”;
$(“#结果”).html(sHTML);
}
#结果{填充:20px;}

过程
实际上应该是

let a = new Date(epoch);
因为epoch参数已经是一个有效的时间戳

不过,我会避免完全使用时间戳

功能时间转换器(日期){
让splitDate=date.toDateString().split(“”);
让时间=拆分日期[1]+“”+拆分日期[2];
返回时间;
}
实际上应该是

let a = new Date(epoch);
因为epoch参数已经是一个有效的时间戳

不过,我会避免完全使用时间戳

功能时间转换器(日期){
让splitDate=date.toDateString().split(“”);
让时间=拆分日期[1]+“”+拆分日期[2];
返回时间;

}
非常感谢您的建议。我找到了一种解决方法,使用我正在使用的API提供的时间戳,并将其传递给时间转换器函数。它现在工作正常。谢谢你抽出时间!非常感谢你的建议。我找到了一种解决方法,使用我正在使用的API提供的时间戳,并将其传递给时间转换器函数。它现在工作正常。谢谢你抽出时间!非常感谢你的建议。我通过使用我正在使用的API提供的时间戳并将其传递给tim,找到了一种解决方法