2012-08-07 6 views
13

나는 한 묶음의 객체를 가지고 있는데, 각 객체에는 날짜순으로 그룹화하려는 타임 스탬프가 JSON 객체에 들어있다.자바 스크립트 날짜 - 시간 만 무시하고 날짜 만 설정 하시겠습니까?

var visitDate = new Date(parseInt(item.timestamp, 10)); 
visitDate.setHours(0); 
visitDate.setMinutes(0); 
visitDate.setSeconds(0); 

나는 그와 같은 저장하는 데 사용하고 ..then :

myObject = { 
    "06/07/2012" : [ 
     { 
      "timestamp" : "07/06/2012 13:30", 
      ... 
     }, 
     { 
      "timestamp" : "07/06/2012 14:00", 
      ... 
     } 
    ], 
    "07/07/2012 [...] 
} 

내가 각 타임 스탬프 객체를 테스트하고 사용하고, 날짜를 얻으려면 : 궁극적 인 목표는이 같은 것입니다 JSON 객체의 이름. 지저분 해 보입니다. 일을 더 쉽게 수행 할 수 있어야합니다.

의견이나 제안을 환영합니다.

+0

'새로운 날짜 (parseInt ("07/06/2012 13:30", 10));가 상상할 수 없다. 또는 나는 무엇인가 놓치고 있냐? – KooiInc

+0

그래, 네가 맞아 - 미안, 내 기존 코드 중 일부에 붙여 넣고 증명할 수 없어! 현재 코드는 타임 스탬프를 '신기원으로부터의 밀리 초'형식으로 저장하므로 원본 컨텍스트에서보다 의미가 있습니다. – Paul

+0

좋아, 이해합니다. – KooiInc

답변

23

어때 대략 .toDateString()?

또는 .getDate(), .getMonth().getYear()을 사용 하시겠습니까?

내 생각에 날짜별로 항목을 그룹화하려면 날짜가 아닌 설정에 액세스하기 만하면됩니다. 날짜 필드에 액세스하는 몇 가지 설정 방법을 통해이를 비교하고 함께 그룹화 할 수 있습니까? 여기

체크 아웃 모든 재미 날짜 방법 : MDN Docs


편집 :

var newDate = new Date(oldDate.toDateString()); 

날짜의 생성자는 다음과 같습니다 당신이 날짜 객체로 유지하기 위해을 원하는 경우에, 다만 이렇게 String을 파싱하는 것이 현명하다. (단 한가지주의 할 필요는 없겠지만 꽤 일관되게 동작해야한다.) 따라서 오래된 Date를 가져 와서 날짜만으로 인쇄하면 Ori에서와 같은 결과가 발생한다. ginal post. 당신은 별도의 날짜 객체를 생성 괜찮다면

+0

아마 더 현명한 방법 일 것입니다. JSON에 텍스트로 저장되었지만 Date 객체로 남겨 둘 생각입니다. '.toDateString()'을 사용하지 않은 원래의 이유는 필드에 공백이 있는지 확실하지 않았습니다. 그래도 문제는 아니라고 생각하지 마십시오. – Paul

+1

참고 : 조금 아래로 스크롤하여 * 전체 * 메소드 목록을 찾으십시오. ToString의 많은 변종들이 머리를 터뜨릴 것입니다. –

+0

ooh'.valueOf()'- 유용합니다! 감사! – Paul

7

, 당신은 시도 할 수 :

var tempDate = new Date(parseInt(item.timestamp, 10)); 
var visitDate = new Date (tempDate.getUTCFullYear(), tempDate.getUTCMonth(), tempDate.getUTCDate()); 

나는 시간없이 현재 달의 날짜를 얻을 매우 비슷한 일을한다.

+3

getUTCDate해야한다고 생각합니다. getUTCDay는 요일 (0,6)을 반환합니다. getUTCDate는 해당 월의 일 (1,31)을 반환합니다. –

관련 문제