如何从javascript date.toLocaleTimeString()中只显示小时和分钟?

q1qsirdb  于 2022-12-28  发布在  Java
关注(0)|答案(5)|浏览(243)

有人能帮我得到HH:MM am/pm而不是HH:MM:SS am/pm吗?
我的javascript代码是:

function prettyDate2(time){
  var date = new Date(parseInt(time));
  var localeSpecificTime = date.toLocaleTimeString();
  return localeSpecificTimel;
}

它以HH:MM:SS am/pm的格式返回时间,但我的客户要求是HH:MM am/pm
请帮帮我。

sqxo8psd

sqxo8psd1#

Here是这个问题的一个更通用的版本,它涵盖了除en-US之外的语言环境。另外,解析toLocaleTimeString()的输出可能会有问题,所以CJLopez建议使用这个:

var dateWithouthSecond = new Date();
dateWithouthSecond.toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit'});
lhcgjxsq

lhcgjxsq2#

@CJLopez回答的更一般版本:

function prettyDate2(time) {
  var date = new Date(parseInt(time));
  return date.toLocaleTimeString(navigator.language, {
    hour: '2-digit',
    minute:'2-digit'
  });
}
    • 原来的答复**(在国际上不适用)

您可以执行以下操作:

function prettyDate2(time){
    var date = new Date(parseInt(time));
    var localeSpecificTime = date.toLocaleTimeString();
    return localeSpecificTime.replace(/:\d+ /, ' ');
}

正则表达式正在从该字符串中剥离秒。

v64noz0r

v64noz0r3#

使用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);
  }
13z8s7eq

13z8s7eq4#

我在这里发布了我的解决方案https://stackoverflow.com/a/48595422/6204133

var textTime = new Date(sunriseMills + offsetCityMills + offsetDeviceMills) 
                .toLocaleTimeString('en-US', { hour: 'numeric', minute: 'numeric' });

//“上午7时04分”

falq053o

falq053o5#

您也可以这样尝试:-

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})(.*)/, "$1$3")

相关问题