어떻게 요일과 일년의 달을 얻을 수 있습니까?
저는 자바스크립트에 대해 잘 모르고, 제가 찾은 다른 질문들은 제가 필요로 하는 정보를 얻는 것뿐만 아니라 날짜에 대한 운영과 관련된 것들입니다.
객관적으로
아래와 같은 형식으로 날짜를 받고 싶습니다.
2011년 1월 27일 목요일 17:42:21 인쇄
지금까지 저는 다음을 얻었습니다.
var now = new Date();
var h = now.getHours();
var m = now.getMinutes();
var s = now.getSeconds();
h = checkTime(h);
m = checkTime(m);
s = checkTime(s);
var prnDt = "Printed on Thursday, " + now.getDate() + " January " + now.getFullYear() + " at " + h + ":" + m + ":" s;
저는 이제 어떻게 요일과 일년의 달(그들의 이름)을 얻을 수 있는지 알아야 합니다.
간단하게 만들 수 있는 방법이 있습니까? 아니면 단순히 올바른 값으로 색인하는 어레이를 사용하는 것을 고려해 볼까요?now.getMonth()그리고.now.getDay()?
예, 어레이가 필요합니다.
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var day = days[ now.getDay() ];
var month = months[ now.getMonth() ];
또는 date.js 라이브러리를 사용할 수도 있습니다.
편집:
이런 걸 자주 쓰실 거라면 확장을 원하실 수도 있습니다.Date.prototype접근성을 위해
(function() {
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
Date.prototype.getMonthName = function() {
return months[ this.getMonth() ];
};
Date.prototype.getDayName = function() {
return days[ this.getDay() ];
};
})();
var now = new Date();
var day = now.getDayName();
var month = now.getMonthName();
표준 javascript Date 클래스를 사용합니다.배열이 필요 없습니다. 추가 라이브러리 필요 없습니다.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString 참조
var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false };
var prnDt = 'Printed on ' + new Date().toLocaleTimeString('en-us', options);
console.log(prnDt);
이것이 내가 찾은 최고의 해결책인 것 같습니다.
new Date(payload.value).toLocaleString("en", { weekday: "long" })
또한 한 가지 작업은 날짜 개체를 다음 기준으로 주중을 반환하도록 연장하는 것입니다.
Date.prototype.getWeekDay = function() {
var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
return weekday[this.getDay()];
}
date만 호출할 수 있습니다.getWeekDay();
@L-Ray가 이미 제안했듯이 moment.js도 살펴볼 수 있습니다.
견본
var today = moment();
var result = {
day: today.format("dddd"),
month: today.format("MMM")
}
document.write("<pre>" + JSON.stringify(result,0,4) + "</pre>");
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>
출처: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
toLocaleDateString() 메서드는 이 날짜의 날짜 부분을 언어로 구분하여 표현한 문자열을 반환합니다.새로운 로케일 및 옵션 인수를 사용하면 응용 프로그램에서 형식 지정 규칙을 사용할 언어를 지정하고 함수의 동작을 사용자 지정할 수 있습니다.로케일 및 옵션 인수를 무시하는 이전 구현에서는 사용되는 로케일 및 반환되는 문자열의 형식이 전적으로 구현에 종속됩니다.
긴 형태:
const options = { weekday: 'long' };
const date = new Date();
console.log(date.toLocaleDateString('en-US', options));
라이너 하나:
console.log(new Date().toLocaleDateString('en-US', { weekday: 'long' }));
참고: 로케일에 대한 다른 언어 옵션이 있지만 미국 영어에 대한 옵션이 여기에 나와 있습니다.
var GetWeekDays = function (format) {
var weekDays = {};
var curDate = new Date();
for (var i = 0; i < 7; ++i) {
weekDays[curDate.getDay()] = curDate.toLocaleDateString('ru-RU', {
weekday: format ? format : 'short'
});
curDate.setDate(curDate.getDate() + 1);
}
return weekDays;
};
me.GetMonthNames = function (format) {
var monthNames = {};
var curDate = new Date();
for (var i = 0; i < 12; ++i) {
monthNames[curDate.getMonth()] = curDate.toLocaleDateString('ru-RU', {
month: format ? format : 'long'
});
curDate.setMonth(curDate.getMonth() + 1);
}
return monthNames;
};
불행하게도,Datejavascript의 object는 숫자 형식으로만 약 몇 개월 동안의 정보를 반환합니다.더 빠른 작업은 월 배열을 만들고(자주 변경되지 않아야 함!) 숫자를 기반으로 이름을 반환하는 함수를 만드는 것입니다.
이와 같은 것:
function getMonthNameByMonthNumber(mm) {
var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
return months[mm];
}
따라서 코드는 다음과 같습니다.
var prnDt = "Printed on Thursday, " + now.getDate() + " " + getMonthNameByMonthNumber(now.getMonth) + " "+ now.getFullYear() + " at " + h + ":" + m + ":" s;
http://phrogz.net/JS/FormatDateTime_JS.txt 을 사용하면 다음을 수행할 수 있습니다.
var now = new Date;
var prnDt = now.customFormat( "Printed on #DDDD#, #D# #MMMM# #YYYY# at #hhh#:#mm#:#ss#" );
예를 들어 지역화된 날짜 출력을 구문 분석하는 datejs를 볼 수 있습니다.
예에서 서식은 다음과 같을 수 있습니다.
new Date().toString('dddd, d MMMM yyyy at HH:mm:ss')
function currentDate() {
var monthNames = [ "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE",
"JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER" ];
var days = ['SUNDAY','MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY'];
var today = new Date();
var dd = today.getDate();
var mm = monthNames[today.getMonth()];
var yyyy = today.getFullYear();
var day = days[today.getDay()];
today = 'Date is :' + dd + '-' + mm + '-' + yyyy;
document.write(today +"<br>");
document.write('Day is : ' + day );
}
currentDate();
간단합니다.LocaleDateString()에 요일만 표시하도록 옵션을 설정하여 이름을 가져올 수 있습니다.예를 들어,
( new Date().LocaleDateString('en-US',{ weekday: 'long'})에는 해당 요일만 반환됩니다.(new Date()).LocaleDateString('en-US', {month: 'long'})에는 해당 연도의 월만 반환됩니다.
1: '월요일', 2: '화요일', 3: '수요일', 4: '목요일', 5: '금요일', 6: '토요일', 7: '일요일'로 시작하는 경우 아래 토막글을 사용할 수 있습니다.
let weekDays = {
1: 'Monday',
2: 'Tuesday',
3: 'Wednesday',
4: 'Thursday',
5: 'Friday',
6: 'Saturday',
7:'Sunday'};
return weekDays[dt];
new Date().toUTCString()
당신의 목적을 위해서라면 충분할 것입니다.문자열 형식은 다음과 같습니다.Tue, 31 Dec 2024 23:59:59 GMT https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString
날짜 쓰기 =<script> document.write(Date()); </script>
언급URL : https://stackoverflow.com/questions/4822852/how-to-get-the-day-of-week-and-the-month-of-the-year
'programing' 카테고리의 다른 글
| 조건을 복제하면 다른 결과 집합이 나타납니다. (0) | 2023.11.05 |
|---|---|
| printf()를 사용하는 데 #include가 필요하지 않은 이유는 무엇입니까? (0) | 2023.11.05 |
| 기본 dict를 dict로 변환하는 방법? (0) | 2023.11.05 |
| jQuery - 요소 내부에서 요소 선택 (0) | 2023.10.31 |
| Google 지도 마커 아이콘 이미지 크기 조정 (0) | 2023.10.31 |