programing

어떻게 요일과 일년의 달을 얻을 수 있습니까?

javajsp 2023. 11. 5. 11:00

어떻게 요일과 일년의 달을 얻을 수 있습니까?

저는 자바스크립트에 대해 잘 모르고, 제가 찾은 다른 질문들은 제가 필요로 하는 정보를 얻는 것뿐만 아니라 날짜에 대한 운영과 관련된 것들입니다.

객관적으로

아래와 같은 형식으로 날짜를 받고 싶습니다.

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