2016-12-16 2 views
3

내 anglejs에서 내 UI에 설정된 날짜가 date picker입니다. 그것은 moment.js 객체로 설정되며 내 시간대 (동부 표준시)의 GMT 오프셋을 포함합니다. 순간 객체를 Asp.net Core 끝점으로 다시 제출하면 시간은 오프셋없이 시간으로 변환됩니다. 나는 자바 스크립트 순간 개체 개체에 날짜를 검사 그래서 예를 들어, :MomentJS와 Asp.net Core 사이의 시간차를 어떻게 수정합니까?

timeIn: Fri Dec 16 2016 05:00:00 GMT-0500 (Eastern Standard Time) 

을 내가 그물 코어 내 개체를 검사 할 때 :

TimeIn: 12/16/2016 10:00:00AM 

을 나는 백 엔드의 데이터를 표시 할 시간대에 관계없이 UI에 입력 된 정확한 시간입니다. 그래서 그들이 오전 5시에 들어가면 백엔드는 오전 5시에 저장해야합니다. 순간 객체가 JSON으로 변환되어 백엔드로 보낼 때 값을 변경하는 것으로 보입니다. 나는 UI 내 오드리 개체의) (A JSON.stringify을 수행 할 때 내가 얻을 :

"2016-12-16T10:00:00.000Z" 

입력 한 시간이되도록 프론트 엔드에 시간대의 오프셋 데이터를 제거 할 수있는 방법이 있나요 정확한 시간은 보낸거야?

P. 나는 시간에 대해 많은 질문을하지만 내 사건에 적합한 것을 찾을 수 없었다는 것을 알고 있습니다. 도움을 주셔서 감사합니다

편집 : 자바 Date 개체를 사용하려면 .net DateTime 개체를 사용하고 있습니다.

+0

, 여러분의 인생을 더 쉽게 될 것입니다 :

세 번째 방법은 닷넷에 의해 허용 형식으로 시간 서식을 Moment.js 라이브러리를 사용하는 것입니다. – GlennSills

+0

DateTimeOffset은 단일 시점을 식별하므로 시간대가 고려됩니다. 예를 들어, 사용자가 오전 5시에 timeIn을 입력하고 태평양 표준 시간대에있는 경우 동부 표준 시간대의 감독자가 해당 시간 항목을보고 내 앱 *이 오전 8 시가 아니라 관리자에게 오전 5시를 표시해야합니다. 시간대에 관계없이 모든 사용자에게 동일한 시간을 보여주기 위해 입력 한 시간이 필요합니다. –

답변

0

이 형식은 5 공백이 포함

Fri Dec 16 2016 05:00:00 GMT-0500 (Eastern Standard Time) 

을 그리고 우리는 최소한 일년에 착륙 안전 항목으로 20을 가정 할 수있다. 다음에 나오는 공백 문자를 가져 와서 거기에서 나눕니다.

참고 :이 하나가 완전히 가정을 기반으로하지만 잘 작동 것처럼 보인다.

당신은 같은 것을 수행 할 수 있습니다 How to get the nth occurrence in a string?을 참조하여 또한

var time = "Fri Dec 16 2016 05:00:00 GMT-0500 (Eastern Standard Time)"; 
 
console.log(time.substr(0, time.indexOf(" ", 20)));

을, 우리는 더 나은 뭔가를 얻을 수 있습니다.

function getPosition(string, subString, index) { 
 
    return string.split(subString, index).join(subString).length; 
 
} 
 
var time = "Fri Dec 16 2016 05:00:00 GMT-0500 (Eastern Standard Time)"; 
 
console.log(time.substr(0, getPosition(time, " ", 5)));

두 번째 방법은 처음보다 더 좋은 것 같다 :

function getPosition(string, subString, index) { 
    return string.split(subString, index).join(subString).length; 
} 

우리는 공간의 5 발생을해야합니다. 당신은을 DateTimeOffset로 전환하면

timeIn = timeIn.format('MM-DD-YYYY h:mm:ss'); 
+0

작동하는 것처럼 보입니다. 나는 moment.js 라이브러리를 사용하여 다른 방법을 찾았습니다. timeIn = timeIn.format ('MM-DD-YYYY h : mm : ss'); 이 형식은 .net에서 받아 들여서 적절하게 제공됩니다. –

+0

@big_water 굉장 ...': D' 내 대답에 그것을 추가하고 받아 들일까요? 너의 소원 ...':)' –

+0

나는 그렇게 할 것이다! 비록 당신이 방법을 알지 못한다면 나는 moment.js 라이브러리가 발췌 문장으로 실행될 것이라고 생각하지 않지만? –

관련 문제