서버에서 18:00:00
형식의 문자열을 전송하고 있습니다. 이것은 날짜와 관계없이 시간 값입니다. Javascript에서 6:00PM
로 변환하는 방법? 서버에서 보낸 값에 문자열로 오늘 날짜를 추가 한 다음 결합 된 값을 구문 분석 한 다음 Date 객체의 .toTimeString()
메서드를 시도 할 수 있지만 시간 메서드에서 발생하는 형식은 초 청크로 24 시간입니다. 함수를 작성할 수는 있지만 거기에 뭔가가 있습니까?Javascript : AM/PM 및 시간대 없음을 사용하여 24 시간 시각 문자열을 12 시간으로 변환합니다.
답변
아무것도를, 같은 것 내 솔루션은 다음과 같습니다
function tConvert (time) {
// Check correct time format and split into components
time = time.toString().match (/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];
if (time.length > 1) { // If time format correct
time = time.slice (1); // Remove full string match value
time[5] = +time[0] < 12 ? 'AM' : 'PM'; // Set AM/PM
time[0] = +time[0] % 12 || 12; // Adjust hours
}
return time.join (''); // return adjusted time or original string
}
tConvert ('18:00:00');
이 함수는 정규 표현식을 사용하여 시간 문자열의 유효성을 검사하고 구성 요소 부분으로 나눕니다. 시간의 초는 선택적으로 생략 될 수 있음에 유의하십시오. 유효한 시간이 표시되면 AM/PM 표시를 추가하고 시간을 조정하여 조정합니다.
반환 값은 유효한 시간이 제공된 경우 조정 된 시간 또는 원래 문자열입니다.
참조 jsFiddle : http://jsfiddle.net/ZDveb/
AM/PM을 얻으려면 시간 부분이 12 미만인지 확인한 다음 AM이 아니면 AM이어야합니다.
시간을 얻으려면 (hour % 12) || 12
을하십시오.
이 그것을 수행해야합니다
var timeString = "18:00:00";
var H = +timeString.substr(0, 2);
var h = H % 12 || 12;
var ampm = (H < 12 || H === 24) ? "AM" : "PM";
timeString = h + timeString.substr(2, 3) + ampm;
오전 시간은 예를 들어, 08:00:00
로 서식이 있다고 가정. 그들은 앞에 0이없이 포맷하는 경우, 당신은 첫 번째 콜론의 위치를 테스트 할 것이다 : 내장
var hourEnd = timeString.indexOf(":");
var H = +timeString.substr(0, hourEnd);
var h = H % 12 || 12;
var ampm = (H < 12 || H === 24) ? "AM" : "PM";
timeString = h + timeString.substr(hourEnd, 3) + ampm;
substr을 사용하여 주셔서 감사합니다. HBP의 솔루션이 초 청크를 제거한 이후, 당신의 대답이 첫 번째인데도 녹색 체크를 할 것입니다. 게다가, 그는 3K에 불과합니다. 당신은 21K로 포인트를 굴리고 있습니다 :-) – Tim
아. 아무 래도 나는 초를 제거하고 싶지 않았 음을 알았습니다. – gilly3
12:30 PM – iamsaksham
솔루션을 이해하기 위해 열심히 여러 복잡한 건너 한이 같은 질문을 한 결과, 다음이 떠올랐다 : 하드에 의존하지 않는 매우 간단한 해결책이있다 읽은 정규식 또는 기타 복잡한 코드 당신이 적절한 형식으로 날짜 문자열을 얻을 것이다 가정
function timeTo12HrFormat(time)
{ // Take a time in 24 hour format and format it in 12 hour format
var time_part_array = time.split(":");
var ampm = 'AM';
if (time_part_array[0] >= 12) {
ampm = 'PM';
}
if (time_part_array[0] > 12) {
time_part_array[0] = time_part_array[0] - 12;
}
formatted_time = time_part_array[0] + ':' + time_part_array[1] + ':' + time_part_array[2] + ' ' + ampm;
return formatted_time;
}
var time = timeTo12HrFormat(18:00:00);
console.log(time); // 6:00:00 PM
, 나는 해결책을 가지고 : 뭔가 분명 실종 않는 한,이 매우 간단하고 이해하기 쉬운 솔루션입니다.
function parseDateTime(dt) {
var date = false;
if (dt) {
var c_date = new Date(dt);
var hrs = c_date.getHours();
var min = c_date.getMinutes();
if (isNaN(hrs) || isNaN(min) || c_date === "Invalid Date") {
return null;
}
var type = (hrs <= 12) ? " AM" : " PM";
date = ((+hrs % 12) || hrs) + ":" + min + type;
}
return date;
}
parseDateTime("2016-11-21 12:39:08");//"12:39 AM"
parseDateTime("2017-11-21 23:39:08");//"11:39 PM"
gilly3의 대답을 기반으로합니다. 변환 할 경우
:
08:00 to 08:00 AM
16:00 to 04:00 PM
다음이 작동합니다 :
function tConv24(time24) {
var ts = time24;
var H = +ts.substr(0, 2);
var h = (H % 12) || 12;
h = (h < 10)?("0"+h):h; // leading 0 at the left for 1 digit hours
var ampm = H < 12 ? " AM" : " PM";
ts = h + ts.substr(2, 3) + ampm;
return ts;
};
내가 대신 복잡의 자바 스크립트 Date 객체 네이티브의 힘을 활용하는 것을 선호 정규 표현식과 유효성 검사가있는 것들. 또한 한 자리 숫자로 0을 추가하는 것이 가장 좋습니다. 나는 위에 언급 한대로 format-12h component으로 문제를 해결했습니다.
코드와 테스트 결과를 살펴볼 수 있습니다. 자유롭게 가져 와서 다음 예제와 같이 사용하십시오.
format12h(new Date(2017,06,04,10,45,10)) => 10:45 am
format12h(new Date(2017,06,04,23,45,10)) => 11:45 pm
format12h(new Date(2017,06,04,23,45,10), true) => 11:45:10 pm
- 1. 12 시간에서 24 시간으로 변환
- 2. j2me에서 12 시간을 24 시간으로 변환하는 방법?
- 3. 24 시간을 12 시간으로 변환하려면 어떻게해야합니까?
- 4. 자바에서 24 시간을 12 시간으로 변환
- 5. 12 시간 시스템 시간을 24 시간으로 변환하고 Java로 표시
- 6. Android에서 24 시간에서 12 시간으로 변환
- 7. 시간대 이름 ('z')이 포함 된 문자열을 UTC 시간으로 변환합니다.
- 8. 문자열을 유효한 날짜 시간으로 변환합니다.
- 9. Ruby에서 12 시간 24 시간 형식으로 변환
- 10. 24 시간/12 시간 시계 문제
- 11. 드롭 다운 24 시간 옵션 값 및 12 시간 표시
- 12. Bash 및 awk : 필드를 12 시간에서 24 시간 시계로 변환
- 13. PHP로 12 시간 시계 시간을 24 시간 시계 시간으로 변환하려면 어떻게해야합니까?
- 14. 시간으로 변환 12 시간 형식 24 시간 형식의 시간이 포함 된 문자열
- 15. 현지 날짜, 시간 및 시간대 값을 PHP로 utc 시간대로 변환합니다.
- 16. SQL 형식 시간 개체 24 시간에서 12
- 17. 12/24 시간 표시 설정 감지
- 18. 앱의 12/24 시간 설정 기본값으로 사용자 기기 설정 값
- 19. UIDatePicker를 12 시간 시계에서 24 시간 시계로 변경하십시오.
- 20. 시스템이 12 시간 또는 24 시간인지 어떻게 확인합니까?
- 21. 24 시간 알림 [JavaScript, 쿠키]
- 22. 문자열을 UTC 시간 형식으로 변환합니다.
- 23. 젠드 로캘 12 시간 또는 24 시간 타임
- 24. PHP 12 시간 형식에서 24 시간 형식으로 변환
- 25. PHP로 12 시간 오전/오후 시간으로 24 시간을 변환 할 수없는 이유는 무엇입니까?
- 26. jQuery - .getHours() 메소드를 사용하여 1-24 시간을 1-12 시간으로 변경 하시겠습니까?
- 27. 밀리 초를 날짜/시간으로 변환합니다.
- 28. 문자열을 분 단위로 변환합니다.
- 29. MFC 시간/날짜 컨트롤을 24 시간으로 설정하는 방법
- 30. JSON.NET 날짜/시간 형식을 JavaScript 날짜 및 시간으로 변환하는 방법
"아무것도 내장"대답과 정규식을 사용하여 기능에 대한 감사합니다. – Tim
@HBP 날짜가없는 경우에만 시간이 문자열에 있습니다. 12 시간 형식으로 24 시간 형식을 숨길 수있는 유일한 방법은 코드가 나를 위해 일한 것입니다. – skhurams
번들은 "8 : 30,2 : 30,1 : 30 "등 –