gpt4 book ai didi

JavaScript 新日期序数 (st, nd, rd, th)

转载 作者:IT王子 更新时间:2023-10-29 03:12:08 25 4
gpt4 key购买 nike

如果可能的话,在没有 JavaScript 库或大量笨拙代码的情况下,我正在寻找最简单的方法来将两周后的日期格式化为以下格式:

2013 年 3 月 13 日

我使用的代码是:

var newdate = new Date(+new Date + 12096e5);
document.body.innerHTML = newdate;

返回两周后的日期和时间,但像这样:2013 年 3 月 27 日星期三 21:50:29 GMT+0000(GMT 标准时间)

这是jsFiddle中的代码.

如有任何帮助,我们将不胜感激!

最佳答案

请注意,这适用于从 1 到 31 的天数。

const nth = function(d) {
if (d > 3 && d < 21) return 'th';
switch (d % 10) {
case 1: return "st";
case 2: return "nd";
case 3: return "rd";
default: return "th";
}
}

// test code

const fortnightAway = new Date(+new Date + 12096e5);
const date = fortnightAway.getDate();
const month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][fortnightAway.getMonth()];

document.getElementById("date").innerHTML = `In two weeks it will be the ${date}<sup>${nth(date)}</sup> of ${month} ${fortnightAway.getFullYear()}`;

// test
const dates = [...Array(32).keys()].slice(1).map(i => `${i}${nth(i)}`)
console.log(dates.join(", "))
sup {
font-size: x-small
}
<span id="date"></span>

这是任意数字的版本

const nth = function(d) {
const dString = String(d);
const last = +dString.slice(-2);
if (last > 3 && last < 21) return 'th';
switch (last % 10) {
case 1: return "st";
case 2: return "nd";
case 3: return "rd";
default: return "th";
}
}

// test
const numbers = [...Array(1225).keys()].map(i => `${i}${nth(i)}`)
console.log(numbers.join(", "))
sup {
font-size: x-small
}
<span id="date"></span>

关于JavaScript 新日期序数 (st, nd, rd, th),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15397372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com