Как показать только часы и минуты с даты 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' });