Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
如何使用12小时格式的javascript显示早上/下午/晚上好_Javascript_Jquery - Fatal编程技术网

如何使用12小时格式的javascript显示早上/下午/晚上好

如何使用12小时格式的javascript显示早上/下午/晚上好,javascript,jquery,Javascript,Jquery,已经试过了。现在是下午4:11,但我的输出显示为“早上好” $(文档).ready(函数(){ 函数dateTime(){ var ndate=新日期(); var h=ndate.getHours()%12; var format=h>=12?'PM':'AM'; var m=ndate.getMinutes().toString(); var s=ndate.getSeconds().toString(); if(h

已经试过了。现在是下午4:11,但我的输出显示为“早上好”

$(文档).ready(函数(){
函数dateTime(){
var ndate=新日期();
var h=ndate.getHours()%12;
var format=h>=12?'PM':'AM';
var m=ndate.getMinutes().toString();
var s=ndate.getSeconds().toString();
if(h<12){
h=“0”+h;
$(“h3.day message”).html(“早上好”);
}否则如果(h<18){
$(“h3.day message”).html(“下午好”);
}否则{
$(“h3.day message”).html(“晚上好”);
}
如果(s<10){
s=“0”+s;
}
如果(m<10){
m=“0”+m;
}
$('.date').html(h+“:“+m+”:“+s+格式);
}
设置间隔(日期时间,1000);
});

您正在计算模式,因此
h
永远不会大于12

因此,与其

var h = ndate.getHours() % 12;
使用它

var h = ndate.getHours();
解释:模运算符(%)将总小时数除以12,并返回余数。
例如,如果当前时间是下午4点,我将是16小时,因此它将返回4,因此
h
永远不会大于12

因此,与其

var h = ndate.getHours() % 12;
使用它

var h = ndate.getHours();
解释:模运算符(%)将总小时数除以12,并返回余数。
例如,如果当前时间为下午4点,则我将为16小时,因此它将返回4,这是因为您使用的是模运算符。这意味着您的
h>12
检查将永远不会命中,因为除法的剩余部分不能大于
12
。正因为如此,你的逻辑总是认为现在还是早上。要解决这个问题,只需使用一个简单的
,问题在于您使用的是模运算符。这意味着您的
h>12
检查将永远不会命中,因为除法的剩余部分不能大于
12
。正因为如此,你的逻辑总是认为现在还是早上。要解决这个问题,只需使用一个简单的

$(文档).ready(函数(){
函数dateTime(){
var format=“”;
var ndate=新日期();
var hr=ndate.getHours();
var h=hr%12;
如果(hr<12)
{
问候=‘早上好’;
格式='AM';
}
否则(hr>=12&&hr=17&&hr
$(文档).ready(函数(){
函数dateTime(){
var format=“”;
var ndate=新日期();
var hr=ndate.getHours();
var h=hr%12;
如果(hr<12)
{
问候='早上好';
格式='AM';
}

否则,如果(hr>=12&&hr=17&&hr),请尝试从此行使用
%12
var h=ndate.getHours()%12;
h
永远不会高于12。请调试您的代码,并使用
%12
测试不同的值,以了解发生了什么,并明确查看上的文档,只需从此行尝试使用
%12
var h=ndate.getHours()%12;
h
永远不会高于12。请调试您的代码,并使用
%12
测试不同的值,以了解发生了什么,并明确查看上的文档。请添加一些解释,说明为什么它永远不会高于12。我确信OP不知道模函数是什么,或者不会问这个问题ed.请添加一些解释,解释为什么它永远不会更高12.我肯定OP不知道模函数是什么,否则这个问题不会被问到。谢谢dude你节省了我的一天。:)我不确定这怎么会有我在回答中提到的日期格式问题。谢谢dude你节省了我的一天。:)我不确定怎么会有我在回答中提到的日期格式问题。我会试试你说的。我会试试你说的,。