gpt4 book ai didi

JavaScript 日期后缀格式

转载 作者:数据小太阳 更新时间:2023-10-29 05:48:30 28 4
gpt4 key购买 nike

我已尽职调查此事,但尚未取得任何成功。对 JavaScript 相当陌生,我正在寻求帮助。我想显示日期

NOV2012<br>
2<sup>nd</sup><br>
5:00 PM

除了能够将日期后缀更改为 st、nd、rd 或 th 外,我的一切正常(不是我的脚本)。

这是我的:

<pre>  <abbr title="Month">

<script type="text/javascript">
var d=new Date();
var month=new Array(12);
month[0]="Jan";
month[1]="Feb";
month[2]="Mar";
month[3]="Apr";
month[4]="May";
month[5]="Jun";
month[6]="Jul";
month[7]="Aug";
month[8]="Sep";
month[9]="Oct";
month[10]="Nov";
month[11]="Dec";
document.write(month[d.getMonth()]);
</script></abbr>

<script type="text/javascript">
var d = new Date()
document.write(d.getDate())

ordinal : function (number) {
var d = number % 10;
return (~~ (number % 100 / 10) === 1) ? 'th' :
(d === 1) ? 'st' :
(d === 2) ? 'nd' :
(d === 3) ? 'rd' : 'th';
}
});
</script>
<sup>%</sup>
<abbr><script type="text/javascript">
var d = new Date()
document.write(d.getFullYear())
</script></abbr>
<sub>

<script type="text/javascript">
<!--
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
if (minutes < 10){
minutes = "0" + minutes
}
document.write(hours + ":" + minutes + " ")
if(hours > 11){
document.write("PM")
} else {
document.write("AM")
}
//-->
</script>

</sub>
</pre>

我知道问题出在这部分:

<pre> 
<script type="text/javascript">
var d = new Date()
document.write(d.getDate())

ordinal : function (number) {
var d = number % 10;
return (~~ (number % 100 / 10) === 1) ? 'th' :
(d === 1) ? 'st' :
(d === 2) ? 'nd' :
(d === 3) ? 'rd' : 'th';
}
});


</script>

< sup > % < /sup >
</pre>

但我似乎无法找到正确的解决方法。这是它所在的位置:

http://www.bcreativeservices.com/

一如既往的感谢。

B

最佳答案

首先,您在分配序号时遇到语法错误。 看起来您最初试图创建一个包含键序号的对象,但后来更改了它。

这可能是您想要的:

function ordinal(number) {
var d = number % 10;
return (~~ (number % 100 / 10) === 1) ? 'th' :
(d === 1) ? 'st' :
(d === 2) ? 'nd' :
(d === 3) ? 'rd' : 'th';
}

这行得通,但是双按位 NOT ~~ 使您的代码有点难以理解。我不得不去看看它是什么(我从不使用按位数学),我建议你不要使用它(当然,除非你有充分的理由使用它)。

根据 this question on the subject ,你确实得到了速度提升。但是,这些操作需要几分之一微秒,因此改进实际上可以忽略不计,只会使您的代码更难理解。


不久前,我编写了一个函数来为日期提供这些后缀。经过一些细微的修改(我将我的添加到 Date 原型(prototype)中),你会得到:

function ordinal(date) {
return (date > 20 || date < 10) ? ([false, "st", "nd", "rd"])[(date%10)] || "th" : "th";
}

适用于任何有效日期。

编辑:我突然想到我的序数函数版本可能同样无法阅读。为了理智起见,这里有一个具有相同逻辑的简化版本:

function ordinal(date) {
if(date > 20 || date < 10) {
switch(date%10) {
case 1:
return "st";
case 2:
return "nd";
case 3:
return "rd";
}
}
return "th";
}

关于JavaScript 日期后缀格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13203518/

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