형식이있는 날짜가 Sun May 11,2014
있습니다. 2014-05-11
JavaScript 를 사용하여 어떻게 변환 할 수 있습니까?
function taskDate(dateMilli) {
var d = (new Date(dateMilli) + '').split(' ');
d[2] = d[2] + ',';
return [d[0], d[1], d[2], d[3]].join(' ');
}
var datemilli = Date.parse('Sun May 11,2014');
console.log(taskDate(datemilli));
위의 코드는 동일한 날짜 형식을 제공 sun may 11,2014
합니다. 이 문제를 어떻게 해결할 수 있습니까?
답변
넌 할 수있어:
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2)
month = '0' + month;
if (day.length < 2)
day = '0' + day;
return [year, month, day].join('-');
}
사용 예 :
alert(formatDate('Sun May 11,2014'));
산출:
2014-05-11
JSFiddle 데모 : http://jsfiddle.net/abdulrauf6182012/2Frm3/
답변
toISOString
날짜를 ISO 8601 형식으로 가져 오는 기본 제공 방법을 활용하십시오 .
yourDate.toISOString().split('T')[0]
yourDate가 날짜 개체 인 곳
편집 : 어떤 사람은 주석에서 시간대를 처리하기 위해 이것을 썼습니다 :
const offset = yourDate.getTimezoneOffset()
yourDate = new Date(yourDate.getTime() + (offset*60*1000))
return yourDate.toISOString().split('T')[0]
답변
이 방법으로 날짜를 yyyy-mm-dd 형식으로 가져옵니다. 🙂
var todayDate = new Date().toISOString().slice(0,10);
답변
날짜를 yyyy-mm-dd 형식으로 변환하는 가장 간단한 방법은 다음과 같습니다.
var date = new Date("Sun May 11,2014");
var dateString = new Date(date.getTime() - (date.getTimezoneOffset() * 60000 ))
.toISOString()
.split("T")[0];
작동 방식 :
new Date("Sun May 11,2014")
문자열"Sun May 11,2014"
을 시간을 나타내는 날짜 객체 로 변환Sun May 11 2014 00:00:00
현재 로캘 (호스트 시스템 설정)을 기준으로 시간대new Date(date.getTime() - (date.getTimezoneOffset() * 60000 ))
날짜를 시간에 해당하는 날짜 객체로 변환Sun May 11 2014 00:00:00
시간대 오프셋을 빼서 UTC (표준 시간) 단위.toISOString()
날짜 객체를 ISO 8601 문자열로 변환2014-05-11T00:00:00.000Z
.split("T")
문자열을 배열로 분할["2014-05-11", "00:00:00.000Z"]
[0]
해당 배열의 첫 번째 요소를 가져옵니다
데모
var date = new Date("Sun May 11,2014");
var dateString = new Date(date.getTime() - (date.getTimezoneOffset() * 60000 ))
.toISOString()
.split("T")[0];
console.log(dateString);
답변
format = function date2str(x, y) {
var z = {
M: x.getMonth() + 1,
d: x.getDate(),
h: x.getHours(),
m: x.getMinutes(),
s: x.getSeconds()
};
y = y.replace(/(M+|d+|h+|m+|s+)/g, function(v) {
return ((v.length > 1 ? "0" : "") + eval('z.' + v.slice(-1))).slice(-2)
});
return y.replace(/(y+)/g, function(v) {
return x.getFullYear().toString().slice(-v.length)
});
}
결과:
format(new Date('Sun May 11,2014'), 'yyyy-MM-dd')
"2014-05-11
답변
일부 답변의 조합 :
var d = new Date(date);
date = [
d.getFullYear(),
('0' + (d.getMonth() + 1)).slice(-2),
('0' + d.getDate()).slice(-2)
].join('-');
답변
라이브러리 사용에 대해 아무것도 없다면 Moments.js 라이브러리를 다음과 같이 사용할 수 있습니다 .
var now = new Date();
var dateString = moment(now).format('YYYY-MM-DD');
var dateStringWithTime = moment(now).format('YYYY-MM-DD HH:mm:ss');
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>