글목록

2013. 12. 24.

날짜 비교하기


날짜를 현재 날짜로 설정
--------------------------------------------------------------------------------
날짜를 지정하지 않고 Date 개체의 인스턴스를 만드는 경우 이 인스턴스는 연도, 월, 일, 시, 분, 초 및 밀리초를 포함하는 현재 날짜와 시간을 나타내는 값을 반환합니다.이 날짜 및 시간을 읽거나 수정할 수 있습니다.
다음 예제에서는 매개 변수를 사용하지 않고 날짜를 인스턴스화하고 mm-dd-yy 형식으로 표시하는 방법을 보여 줍니다.
 var dt = new Date();

 // Display the month, day, and year. getMonth() returns a 0-based number.
 var month = dt.getMonth()+1;
 var day = dt.getDate();
 var year = dt.getFullYear();
 document.write(month + '-' + day + '-' + year);

 // Output: current month, day, year



 특정 날짜 설정
--------------------------------------------------------------------------------
생성자에 날짜 문자열을 전달하여 특정 날짜를 설정할 수 있습니다.
 var dt = new Date('8/24/2009');
 document.write(dt);

 // Output: Mon Aug 24 00:00:00 PDT 2009


날짜 문자열에 표시되는 표준 시간대는 로컬 컴퓨터에서 설정된 표준 시간대에 해당합니다.
JavaScript는 매개 변수로 사용하는 문자열의 형식에 대한 융통성이 있습니다.예를 들어 "8-24-2009", "August 24, 2009" 또는 "24 Aug 2009"를 입력할 수 있습니다.
또한 시간을 지정할 수도 있습니다.다음 예제는 ISO 형식으로 날짜 및 시간을 지정하는 한 가지 방법을 보여 줍니다."Z"는 UTC 시간을 나타냅니다.
var dt = new Date('2010-06-09T15:20:00Z');
document.write(dt);
document.write("
");
document.write(dt.toISOString());

// Output:
// Wed Jun 09 2010 08:20:00 GMT-0700 (Pacific Daylight Time)
// 2010-06-09T15:20:00.000Z


ISO와 같은 날짜 형식에 대한 자세한 내용은 날짜 및 시간 문자열(JavaScript)를 참조하십시오.
다음 예제는 시간을 지정하는 다른 방법을 보여 줍니다.
var dtA = new Date('8/24/2009 14:52:10');

// The parameters are year, month, day, hours, minutes, seconds.
var dtB = new Date(2009, 7, 24, 14, 52, 10);
document.write(dtA);
document.write("
");
document.write(dtB);

// Output:
// Mon Aug 24 14:52:10 PDT 2009
// Mon Aug 24 14:52:10 PDT 2009


일, 월 및 연도 더하기 및 빼기
--------------------------------------------------------------------------------
Date 개체의 getX 및 setX 메서드를 사용하여 특정 날짜 및 시간을 설정할 수 있습니다.
다음 예제에서는 날짜를 전날로 설정하는 방법을 보여 줍니다.필요한 경우에는 월 및 연도 값도 변경됩니다.
var myDate = new Date("1/1/1990");
var dayOfMonth = myDate.getDate();
myDate.setDate(dayOfMonth - 1);

document.write(myDate);

// Output: Sun Dec 31 00:00:00 PST 1989
 

다음 예제에서는 다음 달의 첫날에서 하루를 빼서 이 달의 마지막 날로 날짜를 설정합니다.

월은 0(1월)에서 11(12월)까지 번호가 지정되고,요일은 0(일요일)에서 6(토요일)까지 번호가 지정됩니다.
var myDate = new Date("1/1/1990")
myDate.setMonth(myDate.getMonth() + 1);

myDate.setDate (myDate.getDate() - 1);

document.write(myDate);

// Output: Wed Jan 31 00:00:00 PST 1990


요일 사용
--------------------------------------------------------------------------------
getDay 메서드는 요일을 0(일요일)에서 6(토요일)까지의 숫자로 가져옵니다. (이 메서드는 1에서 31까지의 숫자로 월의 일을 가져오는 getDate 메서드와 같지 않습니다.)
다음 예제에서는 미국에서 11월의 네 번째 목요일인 추수 감사절의 날짜를 설정합니다.이 스크립트에서는 현재 연도의 11월 1을 찾은 다음 첫 번째 목요일을 찾아 3주를 더합니다.
var myDate = new Date();
myDate.setHours(0, 0, 0, 0);

myDate.setYear(2013);


// Determine November 1.
myDate.setDate(1);
myDate.setMonth(10);

// Find Thursday.
var thursday = 4;
while(myDate.getDay() != thursday) {
    myDate.setDate(myDate.getDate() + 1);
}

// Add 3 weeks.
myDate.setDate(myDate.getDate() + 21);

document.write(myDate);

// Output: Thu Nov 28 00:00:00  2013


경과된 시간 계산
--------------------------------------------------------------------------------
getTime 메서드는 1970년 1월 1일 자정을 기준으로 경과된 시간을 밀리초 단위로 반환합니다.날짜가 이 날짜 이전이면 음수를 반환합니다.
getTime 메서드를 사용하여 경과된 시간을 계산하는 데 필요한 시작 시간과 종료 시간을 설정할 수 있습니다.그러면 몇 초 정도의 짧은 시간이나 며칠에 달하는 긴 시간을 측정할 때 사용할 수 있습니다.
다음 예제에서는 경과된 시간을 초 단위로 계산합니다.getTime 메서드는 0일 이후 경과된 시간을 밀리초 단위로 가져옵니다.
var startTime = new Date('1/1/1990');
var startMsec = startTime.getMilliseconds();
startTime.setTime(5000000);
var elapsed = (startTime.getTime() - startMsec) / 1000; 
document.write(elapsed);

// Output: 5000


보다 관리가 용이한 단위를 사용하려면 getTime 메서드에서 제공하는 밀리초를 적절한 수로 나누면 됩니다.예를 들어 밀리초를 일 단위로 바꾸려면 밀리초 값을 86,400,000(1000미릴초 x 60초 x 60분 x 24시간)으로 나눕니다.
다음 예제에서는 지정한 년도의 첫날부터 경과된 시간을 보여 줍니다.여기서는 나누기 연산을 통해 경과된 시간을 일, 시, 분 및 초 단위로 계산합니다.일광 절약 시간은 반영되지 않습니다.

// Set the unit values in milliseconds.
var msecPerMinute = 1000 * 60;
var msecPerHour = msecPerMinute * 60;
var msecPerDay = msecPerHour * 24;

// Set a date and get the milliseconds
var date = new Date('6/15/1990');
dateMsec = date.getTime();

// Set the date to January 1, at midnight, of the specified year.
date.setMonth(0);
date.setDate(1);
date.setHours(0, 0, 0, 0);

// Get the difference in milliseconds.
var interval = dateMsec - date.getTime();

// Calculate how many days the interval contains. Subtract that
// many days from the interval to determine the remainder.
var days = Math.floor(interval / msecPerDay );
interval = interval - (days * msecPerDay );

// Calculate the hours, minutes, and seconds.
var hours = Math.floor(interval / msecPerHour );
interval = interval - (hours * msecPerHour );

var minutes = Math.floor(interval / msecPerMinute );
interval = interval - (minutes * msecPerMinute );

var seconds = Math.floor(interval / 1000 );

// Display the result.
document.write(days + " days, " + hours + " hours, " + minutes + " minutes, " + seconds + " seconds.");

//Output: 164 days, 23 hours, 0 minutes, 0 seconds.


사용자의 나이 확인다음 예제에서는 사용자의 생일을 사용하여 사용자의 나이를 햇수로 계산합니다.여기서는 현재 연도에서 출생 연도를 뺀 다음, 현재 연도에서 생일이 아직 지나지 않았으면 1을 더 뺍니다.
var birthday = new Date("8/1/1985");
var today = new Date();
var years = today.getFullYear() - birthday.getFullYear();

// Reset birthday to the current year.
birthday.setFullYear(today.getFullYear());

// If the user's birthday has not occurred yet this year, subtract 1.
if (today < birthday)
{
    years--;
}
document.write("You are " + years + " years old.");

// Output: You are years years old.


날짜 비교
--------------------------------------------------------------------------------
JavaScript에서 날짜를 비교할 때 == 연산자는 연산자 양쪽의 날짜가 동일한 개체를 참조하는 경우에만 true를 반환함을 명심해야 합니다.따라서 별도의 두 Date 개체가 동일한 날짜로 설정된 경우 date1 == date2는 false를 반환합니다.또한 날짜로만 설정되고 시간으로 설정되지 않은 Date 개체는 해당 날짜의 자정으로 초기화됩니다.따라서 지정된 시간 없이 설정된 Date를 Date.now와 비교하는 경우 첫 번째 Date는 자정으로 설정되고 Date.now는 자정으로 설정되지 않음을 명심해야 합니다.
다음 예제에서는 현재 날짜가 지정한 날짜와 같은지, 이전인지 또는 이후인지를 검사합니다.todayAtMidn에서 현재 날짜를 설정하기 위해 스크립트는 현재 연도, 월 및 일에 대해 Date 개체를 만듭니다.
// Get the current date at midnight.
var now = new Date(); 
var todayAtMidn = new Date(now.getFullYear(), now.getMonth(), now.getDate());

// Set specificDate to a specified date at midnight.
var specificDate = new Date("9/21/2009");

// Compare the two dates by comparing the millisecond
// representations.
if (todayAtMidn.getTime() == specificDate.getTime())
{
    document.write("Same");
}
else
{
    document.write("Different");
}

//Output: Different


http://msdn.microsoft.com/ko-kr/library/ie/ee532932(v=vs.94).aspx

댓글 없음:

댓글 쓰기