我目前试图显示用户的时间而不显示秒。是否有一种方法,我可以这样做使用Javascript的.toLocaleTimeString()?
做这样的事情:
var date = new Date();
var string = date.toLocaleTimeString();
将显示用户的时间与每个单位,例如,目前显示为3:39:15 PM。我是否能够显示相同的字符串,只是没有秒?(例如下午3时39分)
我目前试图显示用户的时间而不显示秒。是否有一种方法,我可以这样做使用Javascript的.toLocaleTimeString()?
做这样的事情:
var date = new Date();
var string = date.toLocaleTimeString();
将显示用户的时间与每个单位,例如,目前显示为3:39:15 PM。我是否能够显示相同的字符串,只是没有秒?(例如下午3时39分)
当前回答
只需将日期转换为字符串,然后连接所需的子字符串。
let time = date.toLocaleTimeString();
console.log(time.substr(0, 4) + time.substr(7, 3))
//=> 5:45 PM
其他回答
我只能从用户的localeTimeString中得到小时
const americanTime = date.toLocaleTimeString("en-US", { timeZone: 'America/New_York', hour: 'numeric', hour12: false })
const timeInHours = americanTime;
在本例中,我使用New_York作为用户的位置。
下面是一个函数,用注释解释:
function displayNiceTime(date){
// getHours returns the hours in local time zone from 0 to 23
var hours = date.getHours()
// getMinutes returns the minutes in local time zone from 0 to 59
var minutes = date.getMinutes()
var meridiem = " AM"
// convert to 12-hour time format
if (hours > 12) {
hours = hours - 12
meridiem = ' PM'
}
else if (hours === 0){
hours = 12
}
// minutes should always be two digits long
if (minutes < 10) {
minutes = "0" + minutes.toString()
}
return hours + ':' + minutes + meridiem
}
正如其他人所指出的那样,toLocaleTimeString()可以在不同的浏览器中以不同的方式实现,因此这种方式提供了更好的控制。
要了解更多关于Javascript Date对象的信息,可以参考https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
只需将日期转换为字符串,然后连接所需的子字符串。
let time = date.toLocaleTimeString();
console.log(time.substr(0, 4) + time.substr(7, 3))
//=> 5:45 PM
使用locale:
var date = new Date();
date.toLocaleTimeString('fr-FR', {hour: '2-digit', minute: '2-digit'})
我认为最初的问题可以很容易地用迄今为止被忽略的东西来回答:简单的字符串分割。返回的时间是一个文本字符串,只需在“:”分隔符上拆分它,并按您想要的方式重新组装字符串。没有插件,没有复杂的脚本。你看:
var myVar=setInterval(function(){myTimer()},1000);
function myTimer() {
var d = new Date();
currentNow = d.toLocaleTimeString();
nowArray = currentNow.split(':');
filteredNow = nowArray[0]+':'+nowArray[1];
document.getElementById("demo").innerHTML = filteredNow;
}