Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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直接格式化时间?_Javascript - Fatal编程技术网

有没有办法用Javascript直接格式化时间?

有没有办法用Javascript直接格式化时间?,javascript,Javascript,我想要的是使用Javascript获取当前时间的输出。输出应类似于: 15:28:30 PM 我是用下面的代码得到的: var date = new Date(); document.write("Current time: " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds()); if (date.getHours() <= 12) document.write(" AM"); else

我想要的是使用
Javascript
获取当前时间的输出。输出应类似于:

15:28:30 PM
我是用下面的代码得到的:

var date = new Date();
document.write("Current time: " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds());

if (date.getHours() <= 12)
   document.write(" AM");
else
   document.write(" PM");
但我想知道是否有更快或更干净的解决方案来解决这个问题,因为我认为我的解决方案根本不好

是否有可能用更好的方法或解决方案获得相同的行为


提前谢谢

我看你的方法没有错。然而,如果您想要不同格式的灵活性,有一个名为的库,它允许您构建和格式化日期

moment().format('hh:mm:ss A'); // 12:00:00 AM

我看你的方法没有错。然而,如果您想要不同格式的灵活性,有一个名为的库,它允许您构建和格式化日期

moment().format('hh:mm:ss A'); // 12:00:00 AM
是这样的:

var dt = new Date;
console.log(dt.toLocaleTimeString());
是这样的:

var dt = new Date;
console.log(dt.toLocaleTimeString());
这将为您提供所需的确切格式。虽然我会使用像矩.js或Date.js这样的库。有很多选择


这将为您提供所需的确切格式。虽然我会使用像矩.js或Date.js这样的库。有很多选择。

我认为你的选择是正确的。只需稍加修改即可满足您的期望:

var date = new Date();
int hour = date.getHours();
string abbr;

if (date.getHours() <= 12)
   abbr = " AM";
else {
   hour = hour + 12;
   abbr = " PM";
}
document.write("Current time: " + hour + ":" + date.getMinutes() + ":" + date.getSeconds() + abbr);
var-date=新日期();
int hour=date.getHours();
字符串缩写;

如果(date.getHours()我认为您走对了。只需稍加修改即可满足您的期望:

var date = new Date();
int hour = date.getHours();
string abbr;

if (date.getHours() <= 12)
   abbr = " AM";
else {
   hour = hour + 12;
   abbr = " PM";
}
document.write("Current time: " + hour + ":" + date.getMinutes() + ":" + date.getSeconds() + abbr);
var-date=新日期();
int hour=date.getHours();
字符串缩写;
如果(date.getHours()
var currentTime=new date())
var hours=currentTime.getHours()
var minutes=currentTime.getMinutes()
var seconds=currentTime.getSeconds()
如果(分钟<10){
分钟数=“0”+分钟数
}
如果(秒<10){
秒数=“0”+秒
}
str+=hours+“:“+minutes+”:“+seconds+”;
如果(小时数>11){
str+=“PM”
}否则{
str+=“AM”
}
返回str;
}

var currentTime=新日期()
var hours=currentTime.getHours()
var minutes=currentTime.getMinutes()
var seconds=currentTime.getSeconds()
如果(分钟<10){
分钟数=“0”+分钟数
}
如果(秒<10){
秒数=“0”+秒
}
str+=hours+“:“+minutes+”:“+seconds+”;
如果(小时数>11){
str+=“PM”
}否则{
str+=“AM”
}
返回str;
}


我对
javascript
一无所知,我知道这将是一个愚蠢的问题,但是……我如何在我的javascript上使用它?我导入了什么吗?我在记事本上制作了我的javascript,在浏览器上运行的html文件中。我应该下载什么?有很多文件要下载:。再次感谢!@Josephdreamer:Would此代码返回
15:00:00 PM
03:00 PM
,兄弟?@MrNeo后者。
HH
是24小时。
HH
是12小时。你可以删除
A
来删除AM/PM。我对
javascript
完全陌生,我知道这将是一个愚蠢的问题,但……我如何在我的javascript上使用它?我知道吗导入一些东西?我在记事本上制作了javascript,放在浏览器上运行的html文件中。我应该下载什么?有很多文件要下载:。再次感谢!@JosephDeeamer:这段代码会返回
15:00:00 PM
还是
03:00:00 PM
,兄弟?@MrNeo后者。
HH
是24小时。
HH
>是12小时。您可以删除
A
以删除AM/PM。请注意,我只需要时间,而不是日期和时间的完整日期。使用您的解决方案,我得到了输出:
7/10/2015 3:18:08
尝试
new date()
。现在我得到了输出:
3:39:40
但仍然没有得到AM或PM。请注意,我只想要时间,而不是日期和时间的完整日期。使用您的解决方案,我得到了输出:
7/10/2015 3:18:08
尝试
新日期().toLocaleTimeString()
。现在我得到了输出:
3:39:40
,但仍然没有得到AM或PM。基本上是问题的重复:(我要去第二个答案的地方)基本上是问题的重复:(我要去第二个答案的地方)使用您的解决方案,我得到的是日期,而不是时间。这是我从您的解决方案中得到的输出:
10/7/2015
。现在它可以工作了!但请您再解释一下您在解决方案中使用了什么?或者为什么预期的输出会出现?谢谢!toLocaleString()返回一个具有语言敏感日期表示形式的字符串。我们为英语指定“en”。然后我们链接一些方法。split方法将在指定的字符集分割字符串,在本例中为逗号+空格,并将其放入数组中,因此在本例中,
“10/6/2015,7:46:19 PM”
变为
[“10/6/2015”,“7:46:19 PM”]
。最后,pop方法只是删除数组中的第一项,在本例中是日期字符串,只留下时间字符串。似乎您正在寻找一个非常简洁的解决方案,这是,但不是非常灵活。如果有帮助,请向上投票!解释清楚简单。非常感谢!但我还有一个问题。如果是你看这里:它说pop方法删除数组的最后一个元素。为什么它删除第一个元素?用你的解决方案,我得到的是日期,而不是时间。这是我用你的解决方案得到的输出:
10/7/2015
。现在可以了!但请你再解释一下,你的解决方案中使用了什么?或者为什么需要输出随之而来的是?谢谢!toLocaleString()返回一个带有语言敏感日期表示形式的字符串。我们为英语指定“en”。然后我们链接一些方法。split方法将在指定的字符集分割字符串,在本例中为逗号+空格,并将其放入数组中,因此在本例中
“10/6/2015,7:46:19 PM”
变为
[“10/6/2015”,“7:46:19 PM”]