Как показать только часы и минуты с даты javascript.toLocaleTimeString()?
может ли любой орган помочь мне, как получить формат HH:MM am/pm из формата HH:MM:SS am/PM.
My javascript code is :
function prettyDate2(time){
var date = new Date(parseInt(time));
var localeSpecificTime = date.toLocaleTimeString();
return localeSpecificTimel;
}
но он возвращает время в этом формате HH:MM: SS am/pm .Но мое требование клиента-HH: MM am/pm. Пожалуйста, помогите мне.Спасибо заранее.
5 ответов
вы можете сделать это:
function prettyDate2(time){
var date = new Date(parseInt(time));
var localeSpecificTime = date.toLocaleTimeString();
return localeSpecificTime.replace(/:\d+ /, ' ');
}
регулярное выражение удаляет секунды из этой строки.
как указано в комментарии здесь,ответ лучше во всех местах.
здесь является более общей версией этого вопроса, которая охватывает другие локали, чем en-US. Кроме того, могут возникнуть проблемы с разбором вывода из toLocaleTimeString (), поэтому CJLopez предлагает использовать это вместо:
var dateWithouthSecond = new Date();
dateWithouthSecond.toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit'});
использовать Intl.Datetimeformat с библиотека.
function prettyDate2(time){
var date = new Date(parseInt(time));
var options = {hour: "numeric", minute: "numeric"};
return new Intl.DateTimeFormat("en-US", options).format(date);
}
вы также можете попробовать так: -
function timeformat(date) {
var h = date.getHours();
var m = date.getMinutes();
var x = h >= 12 ? 'pm' : 'am';
h = h % 12;
h = h ? h : 12;
m = m < 10 ? '0'+m: m;
var mytime= h + ':' + m + ' ' + x;
return mytime;
}
или что-то вроде этого:-
new Date('16/10/2013 20:57:34').toLocaleTimeString().replace(/([\d]+:[\d]{2})(:[\d]{2})(.*)/, "")
Я разместил свое решение здесь https://stackoverflow.com/a/48595422/6204133
var textTime = new Date(sunriseMills + offsetCityMills + offsetDeviceMills)
.toLocaleTimeString('en-US', { hour: 'numeric', minute: 'numeric' });