날짜 날짜 및 시간 개체
1. 소개
날짜 객체는 날짜와 시간을 연산하는 객체입니다. Date 객체는 메소드를 통해서만 날짜와 시간에 대해 작동할 수 있습니다.
2. 생성자
2.1 new Date(): 현재 현지 날짜와 시간을 반환
매개변수: 없음
반환 값:
{Date}는 현지 날짜와 시간을 나타내는 Date 객체를 반환합니다.
예:
var dt = new Date();
console.log(dt); // => 현지 날짜와 시간을 나타내는 Date 객체를 반환합니다
2.2 새로운 날짜(밀리초): 밀리초를 날짜 객체로 변환
매개변수:
①milliseconds {int}: '1970/01/01 00:00:00'부터 시작하는 밀리초 수를 시작점으로 나타내는 밀리초 수입니다.
참고: 현재 시간대를 시작 지점에 추가해야 합니다. 베이징 시간의 시간대는 동부 8구입니다. 실제 시작 시간은 '1970/01/01 08:00:00'입니다.
반환 값:
{Date}는 중첩된 Date 객체를 반환합니다.
예:
var dt = new Date(1000 * 60 * 1) // 1분 앞으로 이동할 시간(밀리초)
console.log(dt); // => {날짜}:1970/01/01 08:01:00
dt = new Date(-1000 * 60 * 1); // 1분 전으로 돌아갈 시간(밀리초)
console.log(dt); // => {날짜}:1970/01/01 07:59:00
2.3 new Date(dateStr): 문자열을 Date 객체로 변환
매개변수:
①dateStr {string}: Date 객체로 변환할 수 있는 문자열(시간은 생략 가능) 문자열에는 두 가지 주요 형식이 있습니다.
1) yyyy/MM/dd HH:mm:ss (권장): 시간을 생략하면 반환되는 Date 객체의 시간은 00:00:00입니다.
2) yyyy-MM-dd HH:mm:ss: 시간을 생략하면 반환된 Date 객체의 시간은 08:00:00(현지 시간대 포함)입니다. 시간을 생략하지 않으면 이 문자열은 IE에서 변환되지 않습니다!
반환 값:
{Date}는 변환된 Date 객체를 반환합니다.
예:
var dt = new Date('2014/12/25') // yyyy/MM/dd
console.log(dt); // => {날짜}:2014/12/25 00:00:00
dt = new Date('2014/12/25 12:00:00'); // yyyy/MM/dd HH:mm:ss
console.log(dt); // => {날짜}:2014/12/25 12:00:00
dt = new Date('2014-12-25') // yyyy-MM-dd
console.log(dt); // => {Date}:2014-12-25 08:00:00 (동8구역 시간대 추가)
dt = new Date('2014-12-25 12:00:00'); // yyyy-MM-dd HH:mm:ss (참고: 이 변환 방법은 IE에서 오류를 보고합니다!)
console.log(dt); // => {날짜}:2014-12-25 12:00:00
2.4 새로운 날짜(년, 월, opt_day, opt_hours, opt_mins, opt_seconds, opt_milliseconds): 연도, 월, 일, 시, 분, 초를 날짜 객체로 변환
매개변수:
①연도 {int}: 연도 4자리; 예: 1999, 2014
②월 {int}: 월 2자리. 계산은 0부터 시작하며 0은 1월을 나타내고 11은 12월을 나타냅니다.
③opt_day {int} 선택사항: 숫자; 1부터 세어 1은 1번을 의미합니다.
④opt_hours {int} 선택사항: 시간 2자리 값, 0~23.
⑤opt_ Minutes {int} 선택사항: 분 2자리 값, 0~59.
⑥opt_seconds {int} 선택 사항: 초 값 0~59.
7opt_milliseconds {int} 선택사항: 밀리초 값;
반환 값:
{Date}는 변환된 Date 객체를 반환합니다.
예:
var dt = new Date(2014, 11); // 2014년 12월(여기에 입력된 월은 11)
console.log(dt); // => {날짜}:2014/12/01 00:00:00
dt = new Date(2014, 11, 25); // 2014년 12월 25일
console.log(dt); // => {날짜}:2014/12/25 00:00:00
dt = new Date(2014, 11, 25, 15, 30, 40) // 2014년 12월 25일 15:30:40
console.log(dt); // => {날짜}:2014/12/25 15:30:40
dt = new Date(2014, 12, 25); // 2014년 12월 25일(여기에 입력한 월은 12로 13번째 달을 의미하며 두 번째 해의 1월로 점프합니다)
console.log(dt); // => {날짜}:2015/01/25
3.속성
없음. 날짜 객체는 메서드를 통해서만 날짜와 시간에 대해 작동할 수 있습니다.
4. 인스턴스 메소드
Date 객체의 인스턴스 메소드는 크게 현지 시간과 UTC 시간의 두 가지 형태로 나뉩니다. 일반적으로 이 두 가지 시간 형식에 대해 동일한 방법이 작동합니다(UTC가 있는 방법 이름은 UTC 시간의 작동입니다). 여기서는 주로 현지 시간의 작동을 소개합니다.
4.1 get 메소드
4.1.1 getFullYear(): Date 객체의 연도 값을 4자리로 반환합니다.
4.1.2 getMonth(): Date 객체의 월 값을 반환합니다. 0부터 시작하므로 실제 월 = 반환 값은 1 입니다.
4.1.3 getDate(): Date 객체의 월의 날짜 값을 반환합니다. 값 범위는 1~31입니다.
4.1.4 getHours(): Date 객체의 시간 값을 반환합니다.
4.1.5 getMinutes(): Date 객체의 분 값을 반환합니다.
4.1.6 getSeconds(): Date 객체의 초 값을 반환합니다.
4.1.7 getMilliseconds(): Date 객체의 밀리초 값을 반환합니다.
4.1.8 getDay(): Date 객체의 요일 값을 반환합니다. 0은 일요일, 1은 월요일, 2는 화요일 등입니다.
4.1.9 getTime(): Date 객체와 '1970/01/01 00:00:00' 사이의 밀리초 값을 반환합니다(베이징 시간의 시간대는 동부 8구이며, 실제로 시작 시간은 ' 1970/01/01 08:00:00').
예:
dt.getFullYear(); // => 2014년
dt.getMonth(); // => 11: 실제 12월(월은 0부터 시작)
dt.getDate(); // => 25: 일
dt.getHours(); // => 15: 시간
dt.getMinutes(); // => 30:분
dt.getSeconds(); // => 40:초
dt.getMilliseconds(); // => 333: 밀리초
dt.getDay(); // => 4: 요일 값
dt.getTime(); // => 1419492640333: Date 객체와 '1970/01/01 00:00:00' 사이의 밀리초 값을 반환합니다. (베이징 시간은 동부 8구이며, 실제로 시작 시간은 :' 1970/01/01 08:00:00')
4.2 설정 방법
4.2.1 setFullYear(year, opt_month, opt_date): Date 객체의 연도 값을 4자리로 설정합니다.
4.2.2 setMonth(month, opt_date): Date 객체의 월 값을 설정합니다. 0은 1월을 나타내고 11은 12월을 나타냅니다.
4.2.3 setDate(date): Date 객체의 월로 날짜 값을 설정합니다. 값 범위는 1~31입니다.
4.2.4 setHours(hour, opt_min, opt_sec, opt_msec): Date 객체의 시간 값을 설정합니다.
4.2.5 setMinutes(min, opt_sec, opt_msec): Date 객체의 분 값을 설정합니다.
4.2.6 setSeconds(sec, opt_msec): Date 객체의 초 값을 설정합니다.
4.2.7 setMilliseconds(msec): Date 객체의 밀리초 값을 설정합니다.
예:
var dt = new Date();
dt.setFullYear(2014); // => 2014년
dt.setMonth(11); // => 11: 실제 12월(월은 0부터 시작)
dt.setDate(25); // => 25: 일
dt.setHours(15); // => 15: 시간
dt.setMinutes(30); // => 30: 분
dt.setSeconds(40); // => 40: 초
dt.setMilliseconds(333); // => 333: 밀리초
console.log(dt); // => 2014년 12월 25일 15:30:40 333밀리초
4.3 기타 방법
4.3.1 toString(): 날짜를 '연, 월, 일, 시, 분, 초' 문자열로 변환
4.3.2 toLocaleString(): 날짜를 '연, 월, 일, 시, 분, 초'의 로컬 형식 문자열로 변환
4.3.3 toDateString(): 날짜를 '연, 월, 일' 문자열로 변환
4.3.4 toLocaleDateString(): 날짜를 '연, 월, 일'의 로컬 형식 문자열로 변환
4.3.5 toTimeString(): 날짜를 '시, 분, 초' 문자열로 변환
4.3.6 toLocaleTimeString(): 날짜를 '시, 분, 초'의 로컬 형식 문자열로 변환
4.3.7 valueOf(): getTime()과 동일하며 Date 객체와 '1970/01/01 00:00:00' 사이의 밀리초 값을 반환합니다(베이징 시간의 시간대는 동부 8구, 실제로 시작 시간은 '1970/01/01 08:00:00')
입니다.
예:
var dt = new Date();
console.log(dt.toString()); // => Tue Dec 23 2014 22:56:11 GMT 0800 (China Standard Time): 날짜를 '연, 월, 일, 시, 분, 초'로 변환 ' 문자열
console.log(dt.toLocaleString()); // => 2014년 12월 23일 10:56:11 pm: 날짜를 '연, 월, 일, 시, 분, 초'의 로컬 형식 문자열로 변환합니다. 🎜>
console.log(dt.toDateString()); // => 2014년 12월 23일 화요일: 날짜를 '연도, 월, 일' 문자열로 변환
console.log(dt.toLocaleDateString()); // => 2014년 12월 23일: 날짜를 '연, 월, 일'의 로컬 형식 문자열로 변환
console.log(dt.toTimeString()); // => 22:56:11 GMT 0800(중국 표준시): 날짜를 '시, 분, 초' 문자열로 변환
console.log(dt.toLocaleTimeString()); // => 10:56:11 PM: 날짜를 '시, 분, 초'의 로컬 형식 문자열로 변환합니다.
console.log(dt.valueOf()); // => Date 객체와 '1970/01/01 00:00:00' 사이의 밀리초 값을 반환합니다. (베이징 시간은 동부 8구입니다.) 실제로 시작 시간은 '1970/01/01 08:00:00')
입니다.
5. 정적 방법
5.1 데이트.나우()
설명: 현재 날짜 및 시간의 Date 객체와 '1970/01/01 00:00:00' 사이의 밀리초 값을 반환합니다. (베이징 시간의 시간대는 동부 8구이며, 실제로 시작 시간은 '1970/ 01/01 08:00:00')
매개변수: 없음
반환 값:
{int}: 현재 시간과 시작 시간 사이의 밀리초 수입니다.
예:
console.log(Date.now()); // =>
5.2 Date.parse(dateStr)
설명: 문자열을 Date 개체로 변환한 다음 이 Date 개체와 '1970/01/01 00:00:00' 사이의 밀리초 값을 반환합니다(베이징 시간의 시간대는 동부 8구이며 시작 시간은 실제로 : '1970/01/01 08:00:00')
매개변수:
①dateStr {string}: Date 객체로 변환할 수 있는 문자열(시간은 생략 가능) 문자열에는 두 가지 주요 형식이 있습니다.
1) yyyy/MM/dd HH:mm:ss (권장): 시간을 생략하면 반환되는 Date 객체의 시간은 00:00:00입니다.
2) yyyy-MM-dd HH:mm:ss: 시간을 생략하면 반환된 Date 객체의 시간은 08:00:00(현지 시간대 포함)입니다. 시간을 생략하지 않으면 이 문자열은 IE에서 NaN(숫자 아님)을 반환합니다!
반환 값:
{int} 변환된 Date 객체와 시작 시간 사이의 밀리초 수를 반환합니다.
예:
console.log(Date.parse('2014/12/25 12:00:00')) // =>
console.log(Date.parse('2014-12-25 12:00:00')) // => 1419480000000 (참고: 이 변환 방법은 IE에서 NaN을 반환합니다!)
6. 실무
6.1 C#의 DateTime 유형을 Js의 Date 객체로 변환
참고: Json 직렬화를 통해 프런트 데스크에 반환되는 C#의 DateTime 형식 형식은 "/Date(1419492640000)/"입니다. 가운데 숫자는 DateTime 값과 시작 시간 사이의 밀리초 수를 나타냅니다.
예:
백엔드 코드: 단순 ashx
코드 복사
코드는 다음과 같습니다.
public void ProcessRequest(HttpContext 컨텍스트) {
System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
DateTime dt = DateTime.Parse("2014-12-25 15:30:40");
String rs = js.Serialize(dt); // Json으로 직렬화
Context.Response.ContentType = "텍스트/일반";
context.Response.Write(rs);
}
프런트엔드 코드:
코드 복사
코드는 다음과 같습니다.
var dateTimeJsonStr = '/Date(1419492640000)/'; // C# DateTime 유형 변환을 위한 Json 형식
var msecStr = dateTimeJsonStr.toString().replace(//Date(([-]?d ))//gi, "$1") // => '1419492640000': 일반 교체를 통해 밀리초 문자열
var msesInt = Number.parseInt(msecStr); // 밀리초 문자열을 숫자 값으로 변환
var dt = new Date(msesInt); //날짜 객체 초기화
console.log(dt.toLocaleString()); // => 2014년 12월 25일 오후 3시 30분 40초
6.2 카운트다운 받기
설명: 현재 시간이 목적지 시간으로부터 몇 일, 시간, 분 떨어져 있는지 계산합니다.
예:
/**
* 카운트다운으로 돌아가기
* @param dt {Date}: 대상 날짜 객체
* @return {Strin}: 반환 카운트다운: X일 X시간 X분
*/
함수 getDownTime(dt) {
// 1. 카운트다운 받기
var IntervalMsec = dt - Date.now(); // 목적지 시간에서 현재 시간을 빼고 두 시간의 차이(밀리초)를 구합니다
var IntervalSec = IntervalMsec / 1000; // 초로 변환
var day =parseInt(intervalSec / 3600 / 24) // 일수
var hour = parsInt((intervalSec - day * 24 * 3600) / 3600) // 시간
var min = parsInt((intervalSec - 일 * 24 * 3600 - 시간 * 3600) / 60) // 분
// 2. 밀리초 단위의 차이가 0보다 작다면, 이때 취한 값은 모두 음수이다: -X일 - 시간 - 분으로 표시할 경우. 그 앞의 음수 날짜만 표시됩니다.
If (intervalMsec < 0) {
시간 = 0 - 시간;
최소 = 0 - 최소;
}
// 3. 문자열을 연결하고
을 반환합니다.
var rs = 일 '일' 시간 '시간' 분 '분';
RS를 반환하세요;
}
// 현재시간 : 2014/12/28 13:26
console.log(getDownTime(new Date('2015/06/01'))) // => 154일 10:33
console.log(getDownTime(new Date('2014/01/01'))) // => -361일 13:26
6.3 두 Date 객체의 크기 비교
참고: 두 개를 시작 시간의 밀리초 단위로 비교하여 크기를 구분할 수 있습니다.
예:
var dt1 = 새로운 날짜('2015/12/01');
var dt2 = 새로운 날짜('2015/12/25');
console.log(dt1 > dt2); // =>