2017-12-13 8 views
0

요청에있는 일부 날짜 필드에 과거 또는 미래의 날짜를 지정하고 형식을 지정하는 함수를 작성하려고합니다. 그러나 assignedDate가 함수가 아니라는 오류가 발생했습니다.우편 배달부 날짜 지정을위한 사전 요구 기능

function changeDate(numberOfDays) { 
var assignedDate = new Date().toISOString(); 
assignedDate.setDate(assignedDate.getDate() - numberOfDays); 
assignedDate.substr(0, assignedDate.length-5); 
return assignedDate; } 

그럼 내가 처음에 한 것처럼 변경합니다.

function changeDate(numberOfDays) { 
var assignedDate = new Date().toISOString(); 
var assignedDate.setDate(assignedDate.getDate() - numberOfDays); 
var assignedDate.substr(0, assignedDate.length-5); 
return assignedDate; } 

그런 다음 "assignedDate가 이미 정의되었습니다"라는 경고를 표시하기 시작합니다.

나는 또한 초보자입니다. 해결책을 알려주세요.

감사합니다.

+0

* assignedDate * 문자열, 그것은없는 *의하여 setDate * 방법. – RobG

답변

0

듣고 각각의 날짜까지 일수를 빼거나 추가하려고합니다.

직접

var d = new Date(); 
d.setDate(d.getDate()-5); 

참조처럼 뺄 수 있습니다 Subtract days from a date in JavaScript

-1

당신은 interal 라이브러리 moment을 사용해야합니다.

가져 오기는 다음과 같이 수행됩니다

var moment = require('moment') 

순간 사용하고 읽을 수있는 API하기 아주 쉬운을 제공합니다. 당신은 여기 우체부에서 테스트 스크립트에 더 많은 지원 libs와 조회 수

var fiveDaysAgo = moment().subtract(5, 'days'); 

: Postman PM API Reference

순간 JS의 문서는 여기에서 찾을 수 있습니다 : Moment JS Docs

+0

이것은 실제로 나쁜 생각이 아닙니다 ... 순간은 매우 강력하며, 당신을 위해 무거운 짐을 많이 듭니다. 그것이 지원되는 라이브러리라는 사실은 그것의 유용성을 매우 높게 말해야합니다. 수정 : 실수로 아래쪽 화살표를 누르고 변경하지 못했습니다. 이 솔루션은 OP의 일반 자바 스크립트 접근 방식에서 벗어나지 만 Postman에서 지원하기 때문에 수용 가능한 대답/솔루션이어야합니다. –

+1

@EdMeacham에 대한 귀하의 의견을 보내 주셔서 감사합니다. Postman 설명서에서 권장되므로 순간 JS를 사용하여 문제가 표시되지 않습니다. 우리는 평범한 구식 JS Date 클래스를 우리 팀에서 사용 했으므로 읽기와 유지가 어려워졌습니다. –

+1

확실히! 나는 많은 프로젝트 - 클라이언트와 서버 쪽에서 순간을 사용한다. 응답을 편집하면 내 투표를 수정할 수 있습니다. –

1

당신은 유형 돌볼 필요 당신이 만드는 것을 :

var assignedDate = new Date().toISOString(); 

새로운 날짜은 Date 객체를 만듭니다. 그러나 toISOString은 문자열을 반환하므로 assignedDate은 문자열입니다. 당신이 할 경우 : 문자열이 하여 setDate 방법을 가지고 있지 않는 한

assignedDate.setDate(assignedDate.getDate() - numberOfDays); 

이 오류가 발생합니다. 단지 toISOString을하지 마십시오.

지금 날짜 assignedDate 때문에, 당신은 assignedDate.substr 할 수 없습니다. 당신이 날짜를 포맷 할 경우, 다음은 문자열을 얻을 수 toISOString를 사용 Where can I find documentation on formatting a date in JavaScript?

를 볼 수 있지만,이 때문에 아마 당신이 원하는 (이후에게 날짜가 다를 수 없습니다, 로컬이 아닌 UTC 날짜 수 않습니다 호스트 시간대 오프셋 기간 동안).

function changeDate(numberOfDays) { 
 
    // Start with a Date 
 
    var assignedDate = new Date(); 
 
    // Adjust by the number of days 
 
    assignedDate.setDate(assignedDate.getDate() - numberOfDays); 
 
    // Get a formatted string (for UTC) 
 
    assignedDate = assignedDate.toISOString(); 
 
    // Return the string 
 
    return assignedDate.substr(0, assignedDate.length-5); 
 
} 
 

 
console.log(changeDate(5));

+0

그의 해결책에 Sergej Lopatkin에서 제안한대로 Moment를 사용하는 것이 좋습니다. –