Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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+1小时(分钟错误)_Javascript_Time - Fatal编程技术网

获取当前时间javascript+1小时(分钟错误)

获取当前时间javascript+1小时(分钟错误),javascript,time,Javascript,Time,您好,我目前正在运行一个显示当前时间+1小时的脚本,我遇到的问题是,在前9分钟的每一个小时,0都没有显示出来*不知何故,我就是找不到解决方案 *示例:上午9:1而不是上午9:01 我喜欢Moments.js,但在这种情况下,我不能使用外部库 var now=新日期; now.setHoursnow.getHours+1; var isPM=now.getHours>=12, isMidday=12==now.getHours, 结果=document.querySelectorresult,

您好,我目前正在运行一个显示当前时间+1小时的脚本,我遇到的问题是,在前9分钟的每一个小时,0都没有显示出来*不知何故,我就是找不到解决方案

*示例:上午9:1而不是上午9:01

我喜欢Moments.js,但在这种情况下,我不能使用外部库

var now=新日期; now.setHoursnow.getHours+1; var isPM=now.getHours>=12, isMidday=12==now.getHours, 结果=document.querySelectorresult, 时间=[now.getHours-isPM&&!isMidday?12:0,now.getMinutes | | 00]。加入:+isPM?下午:上午;; 函数addTimet{ 对于t中的var s{ var e=s.substr0,1.toUpperCase+s.substr1; 此[set+e]此[get+e]+t[s] } 还这个 } 函数showTimet{ var s=函数{ 返回此<10?0+此:此 }; 如果t返回[s.callthis.getHours,s.callthis.getMinutes,s.callthis.getSeconds].join:; var e=this.getHours>=12, i=12==this.getHours; 返回时间=[s.callthis.getHours-e&&!i?12:0,s.callthis.getMinutes,s.callthis.getSeconds]。加入:+e?pm:am } result.innerHTML=时间;
var today=新日期,dd=今天.getDate,mm=今天.getMonth+1,yyyy=今天.getFullYear.toString.substr-2;dd并不是解决代码中问题的实际答案,但是为什么不使用类似的方法呢


这不是解决代码中问题的实际答案,但是为什么不使用类似的方法呢


你的问题在《时代》的任务书中。调用now.getMinutes不会将分钟1-9返回为“01”、“02”和“…”,而是将其返回为“1”、“2”等。

您的问题在时间分配语句中。对now.getMinutes的调用不会将分钟1-9返回为“01”、“02”和“…”,而是将它们返回为“1”、“2”等。

看起来您的许多代码实际上没有被调用,似乎只有影响输出的行是:

var now = new Date;
now.setHours(now.getHours() + 1);
var isPM = now.getHours() >= 12, isMidday = 12 == now.getHours(), result = document.querySelector("#result"),
time = [now.getHours() - (isPM && !isMidday ? 12 : 0), now.getMinutes() || "00"].join(":") + (isPM ? " pm" : "am");
result.innerHTML = time;
最相关的块是:

now.getMinutes() || "00"
在示例中获得未填充分钟数的原因是,您只处理if now.getMinutes正好为0的情况,跳过了1-9的情况。为了解决此问题,您可以简单地执行以下操作:

(now.getMinutes() < 10) ? "0" + now.getMinutes() : "" + now.getMinutes()

正如其他人所提到的,正确设置日期格式和进行日期算术尤其是在处理时区和不同地区的事务时。使用类库是一个非常好的主意。

看起来您的许多代码实际上没有被调用,似乎只有以下几行影响输出:

var now = new Date;
now.setHours(now.getHours() + 1);
var isPM = now.getHours() >= 12, isMidday = 12 == now.getHours(), result = document.querySelector("#result"),
time = [now.getHours() - (isPM && !isMidday ? 12 : 0), now.getMinutes() || "00"].join(":") + (isPM ? " pm" : "am");
result.innerHTML = time;
最相关的块是:

now.getMinutes() || "00"
在示例中获得未填充分钟数的原因是,您只处理if now.getMinutes正好为0的情况,跳过了1-9的情况。为了解决此问题,您可以简单地执行以下操作:

(now.getMinutes() < 10) ? "0" + now.getMinutes() : "" + now.getMinutes()

正如其他人所提到的,正确设置日期格式和进行日期算术尤其是在处理时区和不同地区的事务时。使用像这样的库确实是一个好主意。

实际上,它确实解决了潜在的问题,如果OP允许添加外部库,这是最重要的。我通常不使用此库来解决这个简单的任务响应,但在这种情况下,我认为与OPs聪明的代码相比,这一时刻将是一个巨大的改进。此外,矩基本上是使用js操纵时间的行业标准。矩通常是一个很好的解决方案,但不能始终使用外部库。@ErwinvanEkeren我真的不理解你的评论。是否可以在此处使用矩量.js?如果没有,请编辑您的问题并添加此要求。@Pac0抱歉误解,我不能使用外部库。在这种情况下,我编辑了问题!实际上,它确实解决了潜在的问题,这是最重要的,如果OP允许添加外部库。我通常不使用这个库来解决这个简单的任务响应,但在这种情况下,我认为这个时刻将是对OPs聪明代码的巨大改进。此外,矩基本上是使用js操纵时间的行业标准。矩通常是一个很好的解决方案,但不能始终使用外部库。@ErwinvanEkeren我真的不理解你的评论。是否可以在此处使用矩量.js?如果没有,请编辑您的问题并添加此要求。@Pac0抱歉误解,我不能使用外部库。在这种情况下,我编辑了问题!实际上,它使用引号返回一个数字,就像你所做的那样,可能会模棱两可,给人以字符串的印象实际上,它使用引号返回一个数字,就像你所做的那样,可能会模棱两可,给人以字符串的印象