Date는 js의 Array와 유사하며, 둘 다 고유한 특수 메소드를 가진 특수 객체입니다.
Date를 많이 사용하지 않아서 이해가 얕습니다. 지난주에 특정연도의 특정월의 일수를 구하는 방법을 질문받았는데, 잠시 생각해 본 결과 두 가지 종류가 있다고 답했습니다. 하나는 윤년 판단의 논리를 직접 작성하는 것입니다. 각 달의 일수는 두 가지 상황에서 배열에 저장됩니다. js Date 개체의 특성을 사용합니다(실제로 그는 요약했습니다...). 하지만 정확히 어떤 기능이 사용되는지는 말씀드릴 수 없습니다. 이제 생각이 났으니 배우고 요약해 보겠습니다.
Date get 및 set 시리즈
(참고: getTime()의 구체적인 기준 시간은 1970년 1월 1일 8:00:00입니다.)
모든 세트는 get 시리즈에 해당합니다.
유의할 점은 All get set 메소드는 인스턴스를 초기화하고 인스턴스의 속성으로 호출되어야 합니다. 예를 들면:
사실 이해하기 쉽습니다. 결국 Date 객체의 값을 설정하거나 반환하려면 먼저 존재하는 가치가 있어야 합니다. 표준 작성 방법은 var date=new Date(2015,7,30);date.getDate()
입니다. new Date()에 매개변수가 전달되지 않고 set 계열 메서드가 사용되지 않으면 다음을 참조합니다. 현재 시간, 분, 초를 포함한 (로컬 컴퓨팅 시계)의 값입니다. 이 기능은 js에서 쉽게 사용하여 현재 시간을 어떤 형식으로든 표시할 수 있습니다.
var date = new Date(), nowYear = date.getFullYear(), nowMonth = date.getMonth() + 1, //注意getMonth从0开始,getDay()也是(此时0代表星期日) nowDay = date.getDate(), nowHour = date.getHours(), nowMinute = date.getMinutes(), nowSecond = date.getSeconds(), weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], nowWeek = weekday[date.getDay()]; console.log(nowYear + '年' + nowMonth + '月' + nowDay + '日' + nowHour + '时' + nowMinute + '分' + nowSecond + '秒' + nowWeek);
마찬가지로 내장된 setInterval 또는 setTimeout 콜백 메소드를 사용하여 시계 효과를 쉽게 만들 수 있습니다.
첫 번째는 각 개체가 가지고 있는 valueOf()(실제 값 가져오기)와 toString()(문자열 형식으로 값 가져오기)입니다. 빨간색 상자 안의 차이점을 확인하세요.
toTimeString(): Date 객체의 날짜 부분을 문자열로 변환하여 반환하므로 time 매개변수와 인스턴스가 있어야 합니다.
toDateString(): Date 객체의 날짜 부분을 문자열로 변환하고 반환하면 인스턴스가 있어야 합니다.
parse(): 1970년 1월 1일 8시부터 지정된 날짜(문자열)까지의 밀리초 수를 초 단위로 정확하게 반환합니다. Date.parse(Date 인스턴스) 형식으로만 호출할 수 있습니다. (getTime()과 비교하면 밀리초 단위로 정확합니다.)
toSource(): 소스 코드를 반환합니다.
참고: toLocaleString: Date 객체를 UTC 및 GMT에 해당하는 현지 시간 형식에 따라 문자열로 변환합니다. 이 방법은 Array와 Date 모두에서 사용되지 않으므로 더 이상 걱정하지 마세요. UTC 시리즈는 거의 사용되지 않습니다. 즉, 형식이 다릅니다.
중요한 지식 요점 요약
집합 시리즈의 매개변수 논의
setFullYear()의 처음 세 매개변수가 유용하며 시, 분, 초가 사용됩니다. 여전히 로컬입니다~~
다른 세트 계열의 첫 번째 매개변수만 유용하며 반환 값은 new Date()(현재 시간)에 월/날짜/분 *에 해당하는 첫 번째 매개변수를 더한 값을 기반으로 합니다.
완전한 시간 설정
당연히 setTime도 집합 계열이므로 원래 기준에 1992밀리초(1초로 표시됨)만 추가됩니다. setTime이 특별해서 1970년 1월 1일 오전 8시에 테스트를 했습니다(FF, Chrome, IE5+, Opera(Safari는 잘 사용하지 않아서 테스트를 안해봤습니다)). w3School이 0시라고 했지만, 새 Date( 1970,0,1,8,0,0).getTime() 을 테스트하면 분명히 0으로 표시되므로 실제 실행 전에 날짜 인스턴스는 더 이상 new Date() 에 해당하는 현재 시간이 아니지만 기준시간으로 변환되는 과정이 있습니다. 따라서 표시된 값은 1970,0,1,8,0,1입니다. 1992를 5000으로 바꾸면 1970,0,1,8,0,5가 됩니다.
완전한 시간을 설정하는 방법은 새로운 Date 객체를 사용할 때 설정해야 하는 시간의 매개 변수를 전달합니다. 디지털 형식(11월 3일 10:02를 나타냄)으로 1992, 10, 3, 10, 2, 50(밀리초를 추가한 다음 getTime()을 사용하여 감지할 수도 있지만 일반적으로 사용되지 않음)일 수 있습니다. , 1992 50초) 또는 표준 문자열 형식일 수 있습니다(그러나 일반적으로 이렇게 작성되지는 않습니다~~~).
getDate()
보통 피날레에서는 뒤쪽에 배치되죠 ㅎㅎ
get 시리즈답게 매개변수의 개수 외에도 매개변수의 값도 매우 특별합니다. 먼저 원래의 질문에 답하고 특정 연도의 특정 달의 최대 일수를 구합니다(윤년으로 판단하는 것으로 이해 가능~).
new Date(2014,2,0).getDate(); //返回2014年2月份的最后一天(28)
세 번째 매개변수가 0이면 실제로는 전월의 마지막 날을 반환합니다(참고로 해당 월의 숫자 2는 실제로 3월이므로 코드는 당월 2월의 마지막 날의 일련번호를 반환합니다) ). 더 많은 예시 보기
코드 복사
new Date(2014,1,30).getDate(); //返回2014年3月2日在3月份中的天数(2) new Date(2014,2,-1).getDate(); //返回2014年2月份的倒数第二天(27)
//매개변수가 없으면 1로 표시
new Date(2014,8).getDate(); new Date(14,18).getDate(); new Date(180).getDate();
//중복된 매개변수가 있으면 중복된 매개변수는 아무런 영향을 미치지 않습니다(인수[3+]에 대한 연산이 설정되지 않음)
new Date(2015,2,0,2).getDate();
코드 복사
일수가 너무 많으면 다음달로 자동 계산됩니다. 일수가 음수이면 전월로 계산됩니다. 매개변수가 너무 적으면 문제가 발생합니다. 매개변수가 너무 많으면 추가 부분이 효과가 없습니다. 다른 세트 시리즈와 비교하면 (2)를 보면 구현 아이디어와 거의 동일합니다.
new Date('xxxx/xx/xx xx:xx:xx') 형식의 시간 개체는 IOS 및 Andriod 시스템 모두에서 올바르게 인식될 수 있으며 new Date('xxxx-xx-" 형식의 시간 개체는 올바르게 인식될 수 있습니다. xx xx:xx :xx') 형식의 시간 개체는 iOS 시스템에서 올바르게 인식될 수 없으며 변환 계층이 필요합니다.
function parseDate(dateStr) { if (!dateStr) { return new Date(); } if (dateStr.indexOf('/') > -1) { return new Date(dateStr); } else { return new Date(dateStr.replace(/-/g, '/')); } }
이 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
관련 읽기:
위 내용은 JS에서 날짜 객체를 조작하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!