JS에서 날짜로부터 일 이름
제3자로부터 받는 날짜("05/23/2014" 등)가 주어진 날의 이름을 표시해야 합니다.
사용해 보았습니다.Date
, 날짜만 알 수 있어요
그날의 이름을 얻기 위한 정확한 방법은 무엇입니까?
표준 JavaScript Date 클래스에서 제공하는 메서드를 사용합니다.
날짜에서 날짜 이름 가져오기:
function getDayName(dateStr, locale)
{
var date = new Date(dateStr);
return date.toLocaleDateString(locale, { weekday: 'long' });
}
var dateStr = '05/23/2014';
var day = getDayName(dateStr, "nl-NL"); // Gives back 'Vrijdag' which is Dutch for Friday.
평일 전체를 배열하는 중:
function getWeekDays(locale)
{
var baseDate = new Date(Date.UTC(2017, 0, 2)); // just a Monday
var weekDays = [];
for(i = 0; i < 7; i++)
{
weekDays.push(baseDate.toLocaleDateString(locale, { weekday: 'long' }));
baseDate.setDate(baseDate.getDate() + 1);
}
return weekDays;
}
var weekDays = getWeekDays('nl-NL'); // Gives back { 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag', 'zondag'} which are the days of the week in Dutch.
미국 날짜의 경우 'en-US'를 로케일로 사용합니다.
당신은 사용할 수 있습니다.Date.getDay()
method는 일요일에는 0을, 토요일에는 6을 반환합니다.따라서 단순히 날짜 이름을 사용하여 배열을 만들 수 있습니다.
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var d = new Date(dateString);
var dayName = days[d.getDay()];
여기서dateString
는 타사 API로부터 받은 문자열입니다.
또는, 만약 당신이 그날의 이름의 처음 세 글자를 원한다면, 당신은 사용할 수 있습니다.Date
물체의 내장toString
방법:
var d = new Date(dateString);
var dayName = d.toString().split(' ')[0];
그것은 첫번째 단어가 될 것입니다.d.toString()
출력, 세 글자로 된 날짜 이름이 될 것입니다.
Date.toLocaleString() 메서드를 사용합니다.
new Date(dateString).toLocaleString('en-us', {weekday:'long'})
let weekday = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][new Date().getDay()]
var days = [
"Sunday",
"Monday",
"...", //etc
"Saturday"
];
console.log(days[new Date().getDay()]);
간단하게 자바스크립트 매뉴얼에서 날짜 객체를 읽습니다.
날짜에서 읽을 수 있는 문자열을 가져오는 것과 같은 다른 작업을 수행하려면 다음을 사용합니다.
var d = new Date();
d.toLocaleString();
시간이나 날짜만 원하는 경우:
d.toLocaleTimeString();
d.toLocaleDateString();
다음을 수행하여 날짜를 구문 분석할 수 있습니다.
var d = new Date(dateToParse);
아니면
var d = Date.parse(dateToParse);
지정된 날짜에서 날짜를 가져오려면 날짜를 새 날짜 개체에 전달하기만 하면 됩니다.
let date = new Date("01/05/2020");
let day = date.toLocaleString('en-us', {weekday: 'long'});
console.log(day);
// expected result = tuesday
자세한 내용을 보려면 mdn-date.prototype.toLocaleString()(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString) 로 이동하십시오.
let weekday = new Date(dateString).toLocaleString('en-us', {weekday:'long'});
console.log('Weekday',weekday);
이것을 보십시오.
var event = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
console.log(event.toLocaleDateString('de-DE', options));
// expected output: Donnerstag, 20. Dezember 2012
console.log(event.toLocaleDateString('ar-EG', options));
// expected output: الخميس، ٢٠ ديسمبر، ٢٠١٢
console.log(event.toLocaleDateString('ko-KR', options));
// expected output: 2012년 12월 20일 목요일
출처 : Mozilla Doc
한 줄 솔루션:
let day = ["sunday","monday","tuesday","wednesday","thursday","friday","saturday"][new Date().getDay()]
한 가지 옵션은 내장 기능을 사용하는 것입니다. 예를 들어:
const getDayName = (dateString) =>
new Intl.DateTimeFormat('en-Us', { weekday: 'long' }).format(new Date(dateString));
<label for="inp">Enter a date string in the format "MM/DD/YYYY" or "YYYY-MM-DD" and press "OK":</label><br>
<input type="text" id="inp" value="01/31/2021">
<button onclick="alert(getDayName(document.getElementById('inp').value))">OK</button>
가장 쉽고 간단한 방법:
var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
var dayName = days[new Date().getDay()];
var dayName =['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var day = dayName[new Date().getDay()];
console.log(day)
다음 코드를 사용해 보십시오.
var event = new Date();
var options = { weekday: 'long' };
console.log(event.toLocaleDateString('en-US', options));
날짜 이름을 문자열 형식으로 제공합니다.
저는 너무 복잡한 해결책을 좋아하지 않습니다. 다른 사람이 더 좋은 것을 생각해 낸다면 알려주세요 :)
any-name.js
var today = new Date().toLocaleDateString(undefined, {
day: '2-digit',
month: '2-digit',
year: 'numeric',
weekday: 'long'
});
any-name.html
<script>
document.write(today);
</script>
최단 1개의 라이너
배열을 일요일부터 시작하려면 UTC 날짜를 6에서 5로 변경합니다.
const getWeekDays = (locale) => [...Array(7).keys()].map((v)=>new Date(Date.UTC(1970, 0, 6+v)).toLocaleDateString(locale, { weekday: 'long' }));
console.log(getWeekDays('de-DE'));
이 메서드는 임의 날짜를 설정하거나 Locale 문자열을 미리 알 필요가 없습니다.이 메서드는 미리 정의된 값과 독립적입니다.클라이언트에서 로케일을 검색할 수 있습니다.
문자열 로케일에 평일 배열을 자동으로 채웁니다.
const locale = 'en-US' // Change this based on client settings
const date = new Date()
const weekdays = []
while(!weekdays[date.getDay()]) {
weekdays[date.getDay()] = date.toLocaleString(locale, { weekday: 'long'})
date.setDate(date.getDate() + 1)
}
console.log(weekdays)
월의 로케일 이름도 원하는 경우,
const locale = 'en-US' // Change this based on client settings
const date = new Date()
date.setMonth(0) // Not strictly needed, but why not..
date.setDate(1) // Needed because if current date is >= 29, the month Feb can get skipped.
const months = []
while(!months[date.getMonth()]) {
months[date.getMonth()] = date.toLocaleString(locale, { month: 'long'})
date.setMonth(date.getMonth() + 1)
}
console.log(months)
저는 현재 이렇게 사용합니다: (보시는 것처럼 현재 날짜의 클론을 만들고 월과 날짜를 처음 발생하는 것으로 설정합니다.)
const date = new Date()
let locale = navigator.languages
? navigator.languages[0]
: (navigator.language || navigator.userLanguage)
let clone = new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0)
let weekdays = []
while (!weekdays[clone.getDay()]) {
weekdays[clone.getDay()] = {
index: clone.getDay(),
long: clone.toLocaleString(locale, { weekday: 'long' }),
short: clone.toLocaleString(locale, { weekday: 'short' })
}
clone.setDate(clone.getDate() + 1)
}
clone.setDate(clone.getDate() - weekdays.length) // Reset
let months = []
while (!months[clone.getMonth()]) {
months[clone.getMonth()] = {
index: clone.getMonth(),
long: clone.toLocaleString(locale, { month: 'long' }),
short: clone.toLocaleString(locale, { month: 'short' })
}
clone.setMonth(clone.getMonth() + 1)
}
clone.setMonth(clone.getMonth() - months.length) // Reset
let hours = []
while (!hours[clone.getHours()]) {
hours[clone.getHours()] = {
index: clone.getHours(),
hour24: clone.toLocaleTimeString(locale, { hour12: false, hour: '2-digit', minute: '2-digit' }),
hour12: clone.toLocaleTimeString(locale, { hour12: true, hour: 'numeric' })
}
clone.setHours(clone.getHours() + 1)
}
clone.setHours(clone.getHours() - hours.length) // Reset
console.log(locale)
console.log(weekdays)
console.log(months)
console.log(hours)
console.log(clone.toLocaleString())
솔루션 No.1
var today = new Date();
var day = today.getDay();
var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var dayname = days[day];
document.write(dayname);
솔루션 No.2
var today = new Date();
var day = today.getDay();
switch(day){
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day ="Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thrusday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
break;
}
document.write(day);
당신은 물건을 사용할 수 있습니다.
var days = {
'Mon': 'Monday',
'etc..': 'etc..',
'Fri': 'Friday'
}
var date = new Date().toString().split(' ')[0]; //get day abreviation first
console.log(days[date]);
그냥 사용하기만 하면 됩니다.
function getWeekDayNames(format = 'short', locale = 'ru') {
const names = [];
const date = new Date('2020-05-24');
let days = 7;
while (days !== 0) {
date.setDate(date.getDate() + 1);
names.push(date.toLocaleDateString(locale, { weekday: format }));
days--;
}
return names;
}
여기서 읽을 수 있는 형식 문서 날짜시간 형식
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// request a weekday along with a long date
var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
console.log(date.toLocaleDateString('de-DE', options));
// → "Donnerstag, 20. Dezember 2012"
// an application may want to use UTC and make that visible
options.timeZone = 'UTC';
options.timeZoneName = 'short';
console.log(date.toLocaleDateString('en-US', options));
// → "Thursday, December 20, 2012, UTC"
// 함수로 이 문제를 해결합니다. // 요일은 "일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"입니다.
function getDayName(dateString) {
let dayName = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][new Date(dateString).getDay()];
return dayName;
}
let result = getDayName(10/12/2022);
console.log(result);
최선의 방법은 아니지만 대신 배열을 사용합니다.이것은 단지 대안적인 방법일 뿐입니다.
http://www.w3schools.com/jsref/jsref_getday.asp
var date = new Date();
var day = date.getDay();
여기에 글을 올리기 전에 구글을 꼭 사용해야 합니다.
다른 분들이 배열 방법을 올리셨기 때문에 스위치 문을 이용한 다른 방법을 보여드리겠습니다.
switch(day) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
... rest of cases
default:
// do something
break;
}
그러나 위의 내용이 효과가 있으므로 배열이 더 나은 대안입니다.사용할 수도 있습니다.if()
그러나 스위치 문이 여러 개의 경우보다 훨씬 더 깨끗할 것입니다.
언급URL : https://stackoverflow.com/questions/24998624/day-name-from-date-in-js
'programing' 카테고리의 다른 글
컨테이너에 로컬 파일을 사용하려면 어떻게 해야 합니까? (0) | 2023.10.04 |
---|---|
C에서 파일의 전체 내용을 지우려면 어떻게 해야 합니까? (0) | 2023.10.04 |
WooCommerce 4+에서 이메일 알림 보내기 새 주문 상태 추가 (0) | 2023.10.04 |
jquery가 있는 div의 하단 위치 찾기 (0) | 2023.10.04 |
테이블의 현재 값을 사용하여 문 업데이트 (0) | 2023.10.04 |