2016-11-11 1 views
1

에게 제공합니다변환 문자열이 JS 내 코드입니다 잘못 년

var x = "2017-1-2"; 
var y = moment(x, "yyyy-MM-DD") 

내가 콘솔에서 Y를 볼 때 그것이 무엇 :

enter image description here

당신이 볼 수 있듯이 , _d에는 정확한 날짜와 월이 있지만 잘못된 연도가 있습니다. 왜 이런 일이 일어나고 그것을 고치는 법? 나는 그 값을 ajax를 통해 서버에 보내고 잘못된 연도가 보내집니다.

+0

나는 전에 Moment.js 연주,하지만 가정 적이있다''moment'' 당신은''new'' 키워드를 사용하지 않을 생성자인가? – Crowes

+0

@JoshCrowe 아니요, 새 순간 객체를 만들려면 new 키워드가 필요하지 않습니다 :) –

+1

아,이 함수는 생성자가 아닌 반환 값이있는 함수입니다. 잡았다. – Crowes

답변

1

대신 대문자 인 YYYY을 사용하십시오. 그것은 docs에 언급되어 있습니다. 또한 moment()을 사용하여 날짜를 로컬 날짜로 처리 한 다음 UTC로 변환한다는 것을 잊지 마십시오. 날짜를 UTC로 처리하려면 moment.utc()을 사용할 수 있습니다.

내 표준 시간대 (GMT + 7)에 아래 코드는 "2017-01-01T17:00:00.000Z"으로 표시됩니다.

var x = "2017-1-2"; 
 
var y = moment(x, "YYYY-MM-DD") 
 
console.log(y);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.16.0/moment.min.js"></script>