2016-06-13 3 views
5

오늘의 DAY/TIME을 비교하려고합니다. 월요일 09:00:00 현재 시간으로 내가 그 주를 지났는 지 확인합니다. 예 : 이 월요일에 지금 5시 0분 0초 경우는, 그러나 그것은 나는 다음과 같은 비슷한 질문을 찾았지만이 시간을 포맷 한 후 문제를 해결하는 것 같지 않았어요 거짓마다2 개의 날짜를 momentJS와 비교합니다.

var dayTime = Moment("Wednesday 17:00:00", "dddd HH:mm:ss"); 
var now = Moment(Moment.now(), "dddd HH:mm:ss"); 
console.log(Moment.utc(dayTime).isBefore(now)); //returns false all the time 

을 반환 true를 반환해야합니다. 내가 같은 문자열로 moment.now()를 교체 할 때

Comparing two times with Moment JS

는 "수요일 17시 0분 0초는"이는 예상 된 결과를 반환합니다.

정확하게 작동하려면 moment.now()으로해야 할 일이 있습니까?

+0

나는 원하는 순간을 만들어 내기 위해'moment (moment.now(), "dddd HH : mm : ss")'를 기대하지 않습니다. 'moment.now()'는 획기적인 시간 표현을 반환하고 완전히 다른 형식의 문자열을 전달합니다. 'moment (moment.now())'를 시도하십시오. – Hamms

+1

moment.now는 전혀 사용하지 마십시오. 그것은 공개 API의 일부가 아닌 확장 점입니다. 현재 시간을 얻으려면 그냥() –

답변

2

.

수정하려면 나는 일과 시간을 분리하고 순간으로 설정했습니다. 그런 다음 그것을 비교했습니다. 예 :

moment().set({"Day": "Friday", "Hour": "17"}).isBefore(moment()) 
6

Moment.now는 확장 점으로 사용할 수 있지만 실제로는 공개 API가 아닙니다. 현재 시간을 얻으려면 moment()으로 전화하십시오. 모든 순간 호출은 소문자 moment을 사용합니다.

은 날짜와 시간은 현재 시간 이전 인 경우에, 당신은 단지 부를 것이다 참조하십시오 :

moment('01/01/2016', 'MM/DD/YYYY').isBefore(moment()) 

당신은 자신과 문제의 날짜와 형식을 대체 할 것이다.

요일과 시간 만 포함하는 날짜 형식이있는 것을 확인했습니다. 순간이 구문을 분석하지만 예상대로 작동하지 않을 수 있습니다. 귀하의 날짜를 파싱 할 때, 나는 2015 년 12 월 30 일 수요일을 맞이합니다.이 땅의 위치는 정확히 어떤 날인지에 따라 다릅니다. 어쨌든, 나는 그것이 당신이 원하는 것이라고 의심합니다. 가능하다면 나는 연, 월, 일을 얻을 것입니다.

이번 주 수요일로 설정하려면 대신 .day()을 사용하여 그 날을 설정하십시오. 예를 들면 : 나는 내 질문에 게시 코드가 일/시간을 변경되었지만 과거에 항상 것을 의미 2015 년을 설정하고, 관심있는 사람들을위한

moment().day(3).format() 
"2016-06-15T20:19:55-05:00" 
+0

전화 주셔서 감사합니다하지만 내 문제에 아주 대답하지 않습니다. 나는 하루/시간 (아니 년)을 가지고 있고, 지금 내가 그 주간에 그 시점 전후인지 알아 내고 싶습니다. 더 이상 (그리고 당신의 의견)을보고 나서 그것은 하루로 인해 거짓으로 돌아가고있는 것으로 보입니다/시간은 항상 과거에 일년이 주어진다 - 어떤 생각이 이것을 극복하는 방법? – Geraint

관련 문제