JavaScript 또는 jQuery를 사용하여 "dd/mm/yyyy" 또는 "dd-mm-yyyy" 형식의 날짜 문자열을 구문 분석하는 방법
중복 가능성:
DD/MM/YYYY(미국 이외의 형식 날짜)를 허용하도록 JavaScript의 Date.parse를 확장하시겠습니까?
dd-mm-yyyy 문자열을 날짜로 변환합니다.
텍스트 상자에 날짜를 입력했습니다(예: 05/09/1985). 05-Sep-1985(dd-MMM-yyyy) 형식으로 변환하려고 했습니다.어떻게 하면 이를 달성할 수 있을까요?소스 형식은 다음과 같을 수 있습니다.dd-mm-yyyy
또는dd/mm/yyyy
또는dd-mmm-yyyy
서식을 정하다
코드 조각:
function GetDateFormat(controlName) {
if ($('#' + controlName).val() != "") {
var d1 = Date.parse($('#' + controlName).val());
if (d1 == null) {
alert('Date Invalid.');
$('#' + controlName).val("");
}
var array = d1.toString('dd-MMM-yyyy');
$('#' + controlName).val(array);
}
}
이 코드는 09-May-1985를 반환하지만 저는 05-Sep-1985를 원합니다.감사해요.
더 쉽게 조작할 수 있도록 네이티브 자바스크립트 날짜 객체를 감싸는 http://momentjs.com/ 과 같은 도우미 라이브러리를 사용할 수 있습니다.
그러면 다음과 같은 작업을 수행할 수 있습니다.
var day = moment("12-25-1995", "MM-DD-YYYY");
또는
var day = moment("25/12/1995", "DD/MM/YYYY");
그리고 나서 그 날짜에 수술합니다.
day.add('days', 7)
그리고 네이티브 자바스크립트 날짜를 얻기 위해.
day.toDate();
갱신하다
아래에서 말씀하신 내용:
죄송합니다. 이전에는 날짜 형식을 예측할 수 없습니다. dd-mm-yyyy 또는 dd/mm/yyyyy 또는 dd-mmm-yyyy 형식이어야 합니다. 마지막으로 이 형식을 모두 dd-MMM-yyyyy 형식으로 변환하려고 했습니다.
그것은 질문을 완전히 바꿉니다.포맷을 제어할 수 없다면 훨씬 더 복잡해질 것입니다.JavaScript에는 날짜 형식을 지정할 수 있는 기능이 없습니다.공식적으로 자바스크립트가 지원하는 유일한 날짜 형식은 ISO-8601의 단순화된 버전입니다.yyyy-mm-dd
실제로 거의 모든 브라우저가 지원하기는 하지만yyyy/mm/dd
뿐만 아니라.하지만 그 외에는 코드를 직접 작성하거나 좋은 라이브러리를 사용해야 합니다.저는 아마도 moment.js나 DateJS 같은 라이브러리를 사용할 것입니다(DateJS는 몇 년 동안 유지되지 않았지만).
원답:
형식이 항상 다음인 경우 dd/mm/yyyy
그러면 이것은 사소한 것입니다.
var parts = str.split("/");
var dt = new Date(parseInt(parts[2], 10),
parseInt(parts[1], 10) - 1,
parseInt(parts[0], 10));
split
지정된 구분 기호에서 문자열을 분할합니다.그러면 우리는parseInt
문자열을 숫자로 변환하고, 우리는 사용합니다.new Date
건설자를 위한 건설자Date
다음 부분에서:세 번째 부분은 연도, 두 번째 부분은 달, 그리고 첫 번째 부분은 날이 될 것입니다. Date
0을 기반으로 한 월 수를 사용하므로 월 수에서 1을 빼야 합니다.
Date.parse
에서는 특정 형식만 인식하고 입력 형식을 알려주는 옵션이 없습니다.이 경우 입력이 다음 형식으로 되어 있다고 생각합니다.mm/dd/yyyy
그래서 결과가 틀렸습니다.
이 문제를 해결하려면 직접 입력을 구문 분석한 다음(예: ) 수동으로 구성해야 합니다.Date
개체를 사용하거나 datejs와 같은 보다 완전한 라이브러리를 사용합니다.
수동 구문 분석 예제:
var input = $('#' + controlName).val();
var parts = str.split("/");
var d1 = new Date(Number(parts[2]), Number(parts[1]) - 1, Number(parts[0]));
date.js를 사용한 예:
var input = $('#' + controlName).val();
var d1 = Date.parseExact(input, "d/M/yyyy");
사용해 보십시오.
function GetDateFormat(controlName) {
if ($('#' + controlName).val() != "") {
var d1 = Date.parse($('#' + controlName).val().toString().replace(/([0-9]+)\/([0-9]+)/,'$2/$1'));
if (d1 == null) {
alert('Date Invalid.');
$('#' + controlName).val("");
}
var array = d1.toString('dd-MMM-yyyy');
$('#' + controlName).val(array);
}
}
RegExp는 다음과 ..replace(/([0-9]+)\/([0-9]+)/,'$2/$1')
일/월 위치를 변경합니다.
다음을 참조하십시오. http://blog.stevenlevithan.com/archives/date-time-format
당신은 데이트로 무엇이든 할 수 있습니다.
파일: http://stevenlevithan.com/assets/misc/date.format.js
스크립트 태그를 사용하여 HTML 코드에 추가하고 다음과 같이 사용할 수 있습니다.
var now = new Date();
now.format("m/dd/yy");
// Returns, e.g., 6/09/07
언급URL : https://stackoverflow.com/questions/10430321/how-to-parse-a-dd-mm-yyyy-or-dd-mm-yyyy-or-dd-mmm-yyyy-formatted-date-stri
'prosource' 카테고리의 다른 글
malloc()로 할당한 메모리보다 더 많은 메모리를 사용할 수 있는데, 그 이유는 무엇입니까? (0) | 2023.06.17 |
---|---|
openmp의 collapse 절 이해 (0) | 2023.06.17 |
Oracle에서 명시적 커서와 암시적 커서의 차이점은 무엇입니까? (0) | 2023.06.17 |
Android 프로젝트에서 사용되지 않는 모든 리소스 제거 (0) | 2023.06.17 |
타임스탬프에 일 추가 (0) | 2023.06.17 |