현재 초를 표시하지 않고 사용자 시간을 표시하려고합니다. 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