【问题标题】:Using computer date and adding a day indicator使用计算机日期并添加日期指示器
【发布时间】:2022-01-04 16:12:50
【问题描述】:

我一直试图在 2022 年 1 月 的这个 4th 天显示以下内容"

在 HTML 页面上使用 javascript

const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];
const d = new Date();
var dayn = d.getDay()
var dayString;
if (dayn == 1) {
  dayString = "</b><sup>st</sup>"
} else if (dayn == 3) {
  dayString = "</b><sup>rd</sup>"
} else if (dayn >= 4) {
  dayString = "</b><sup>th</sup>"
} else {
  dayString = "</b><sup>nd</sup>"
}
var dateStr = "<b>" + dayn + dayString + "</b> day of<b> " + monthNames[d.getMonth()] + "</b> in the year <b>" + d.getFullYear(); + "</b>"
document.write(dateStr);

但由于某种原因,它今天显示为第二个而不是第四个

我想显示的地方,即。 4th 2022 年 3 月(今天 +89 天)它没有这样做......

所以目标是在第一行显示:

“在 2022 年的这 4th1 月

在下一行

“不迟于 2022 年 3 月的 3rd

【问题讨论】:

  • var dayn = d.getDay() 应该是 var dayn = d.getDate() Day 指的是星期几。从周二开始,它显示 2。
  • 神奇的拉杰什,谢谢!如果我想做第二部分,今天+89天?我可以创建第二个变量吗?
  • 嗨@Rajesh & Shibran 感谢您到目前为止的协助。作为一个完整的菜鸟,我还有一个问题是我如何在两个地方使用 JS,在一个 HTML 页面上有两个不同的结果,因为它似乎在我尝试的地方不起作用...... :-( 所以,首先我想显示“在 2022 年 1 月 4 日”-今天/日期和下一行“不迟于 2022 年 3 月 3 日”-在今天之后 88 天当我运行这两个脚本时一页只显示第一页,告诉我代码不能重复使用?
  • @Staffie — 如果您还有其他问题,请发布另一个问题。不要在 cmets 中提问。

标签: javascript html date dayofmonth


【解决方案1】:

您必须使用d.getDate() 而不是d.getDay()

const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];
const d = new Date();
var dayn = d.getDate();
var endDate = d.setDate(dayn + 89);
var daym = new Date(endDate).getDate();

var dayString;
if (dayn == 1) {
  dayString = "</b><sup>st</sup>"
} else if (dayn == 3) {
  dayString = "</b><sup>rd</sup>"
} else if (dayn >= 4) {
  dayString = "</b><sup>th</sup>"
} else {
  dayString = "</b><sup>nd</sup>"
}

var endDayString;
if (daym == 1) {
  endDayString = "</b><sup>st</sup>"
} else if (daym == 3) {
  endDayString = "</b><sup>rd</sup>"
} else if (daym >= 4) {
  endDayString = "</b><sup>th</sup>"
} else {
  endDayString = "</b><sup>nd</sup>"
}
 
var endDateStr = "<b>" + daym + endDayString + "</b> day of<b> " + monthNames[d.getMonth()] + "</b> in the year <b>" + d.getFullYear(); + "</b>"
document.write(endDateStr);

【讨论】:

  • 谢谢!!!并获得今天 +89 天?
  • @Staffie 我已经更新了你第二个问题的答案
  • 感谢 Shibran,但似乎我不能在一个页面中同时进行,因此目标是在第一行显示:“在 2022 年 1 月 4 日”和下一行“不迟于 2022 年 3 月 3 日"
  • 抱歉,我是个完全不懂 JS 的菜鸟……
【解决方案2】:
const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];
const d = new Date();
var dayn = d.getDate();
var dayString;
if (dayn == 1) {
  dayString = "</b><sup>st</sup>"
} else if (dayn == 3) {
  dayString = "</b><sup>rd</sup>"
} else if (dayn >= 4) {
  dayString = "</b><sup>th</sup>"
} else {
  dayString = "</b><sup>nd</sup>"
}
var dateStr = "<b>" + dayn + dayString + "</b> day of<b> " + monthNames[d.getMonth()] + "</b> in the year <b>" + d.getFullYear(); + "</b>"
document.write(dateStr);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 2012-11-26
    相关资源
    最近更新 更多