[javascript] 초를 표시하지 않고 .toLocaleTimeString ()을 어떻게 사용합니까?

현재 초를 표시하지 않고 사용자 시간을 표시하려고합니다. Javascript의 .toLocaleTimeString ()을 사용 하여이 작업을 수행 할 수있는 방법이 있습니까?

이런 식으로 뭔가를 :

var date = new Date();
var string = date.toLocaleTimeString();

모든 단위에 대해 사용자의 시간을 표시합니다 (예 : 현재 3:39:15 PM). 초없이 동일한 문자열을 표시 할 수 있습니까? (예 : 오후 3:39)



답변

당신은 당신이 설정할 수있는 이 페이지 를 기반으로 옵션을 설정할 수 있습니다.

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

Firefox, Chrome, IE9 + 및 Opera에서 지원됩니다. 웹 브라우저 콘솔에서 사용해보십시오.


답변

이것은 나를 위해 작동합니다 :

var date = new Date();
var string = date.toLocaleTimeString([], {timeStyle: 'short'});


답변

Date.prototype.toLocaleString 에 의해 반환되는 값 은 구현에 따라 달라 지므로 얻을 수있는 것을 얻습니다. 문자열을 구문 분석하여 초를 제거하려고 시도 할 수 있지만 브라우저마다 다를 수 있으므로 사용중인 모든 브라우저에 대해 허용해야합니다.

Date 메서드를 사용하여 자신 만의 명확한 형식을 만드는 것은 어렵지 않습니다. 예를 들면 다음과 같습니다.

function formatTimeHHMMA(d) {
  function z(n){return (n<10?'0':'')+n}
  var h = d.getHours();
  return (h%12 || 12) + ':' + z(d.getMinutes()) + ' ' + (h<12? 'AM' :'PM');
}


답변

로케일로 :

var date = new Date();
date.toLocaleTimeString('fr-FR', {hour: '2-digit', minute: '2-digit'})


답변

나는 또한이 문제에 대한 해결책을 찾고 있었고, 결국 내가 생각해 낸 것입니다.

function getTimeStr() {
    var dt = new Date();
    var d = dt.toLocaleDateString();
    var t = dt.toLocaleTimeString();
    t = t.replace(/\u200E/g, '');
    t = t.replace(/^([^\d]*\d{1,2}:\d{1,2}):\d{1,2}([^\d]*)$/, '$1$2');
    var result = d + ' ' + t;
    return result;
}

http://jsfiddle.net/B5Zrx/에서 시도해보십시오.

\ u200E는 일부 IE 버전에서 보았던 일부 서식 문자입니다 (유니 코드는 왼쪽에서 오른쪽으로 표시합니다).

형식화 된 시간에 “XX : XX : XX”와 같은 것이 포함되어 있으면 초 단위의 시간이어야하고 마지막 부분을 제거합니다.이 패턴을 찾지 못하면 아무것도 변경되지 않습니다. 꽤 안전하지만 이상한 환경에서는 몇 초가 남을 위험이 있습니다.

형식화 된 시간 부분의 순서를 변경할 로케일이 없기를 바랍니다 (예 : ss : mm : hh). 이 왼쪽에서 오른쪽 표시는 나를 조금 긴장하게 만듭니다. 그래서 오른쪽에서 왼쪽 표시를 제거하지 않습니다 (\ u202E)-이 경우 일치하는 것을 찾지 않고 이 경우 초 형식의 시간.


답변

당신은 이것을 시도 할 수 있습니다.

var d = new Date();
d.toLocaleTimeString().replace(/:\d{2}\s/,' ');

또는

d.toLocaleString().replace(/:\d{2}\s/,' ');


답변

이를 설명하는 주석과 함께 수행 할 함수는 다음과 같습니다.

  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