나는 웹 사이트에서 실행되는 타이머가 있습니다. 주문이 만료 될 때까지 사용자의 체류 시간을 검색합니다. 대부분의 경우이 작동합니다. 서버는 초기 시간을 반환하고 자바 스크립트는 카운트 다운을 수행합니다. 페이지가로드의 일부 (타이머가 남은 60 초 이내에있을 때 일어날 것)에 따라서는, 어떤 이유로TimeSpan을 카운트 다운 타이머로 포맷하는 올바른 방법은 무엇입니까?
2:30
2:29
2:28
그런 다음 표시 형식은
-1:0-45
-1:0-46
으로 변합니다
<%= (TimeRemaining.TotalMinutes - 1).ToString("N0") %>:<%= TimeRemaining.Seconds.ToString("N0").PadLeft(2,'0') %>
:
이 -1:0-47
는 시간 범위를 포맷을 담당하는 코드입니다
같은 결과로 다음을 시도해 보았습니다. TotalSeconds이 < = 0이면
<%= String.Format("{0:0}:{1:00}", TimeRemaining.TotalMinutes-1, TimeRemaining.Seconds)%>
나는 또한 음의 안됩니다, 그래서 그때 그냥하는 new TimeSpan(0)
를 반환의 timeRemaining으로에 체크를합니다. 그것은 자바 스크립트 그게 카운트 다운을 엉망이 아니에요, 나는 그것을 비활성화 할 수 있기 때문에 여전히 엉망으로 포맷 된 시간을 볼 수 있습니다.
더 좋은 방법/깨끗한 방법이 있습니까? 미만 남음 삼십초이
TimeRemaining.TotalMinutes - 1
만약 당신이 음수를 얻을 것이다 일분을 빼기 : 내가 볼 수
남은 시간, 요일 등을 표시하지 않는 경우 TotalMinutes를 표시하는 것이 좋습니다. 그러나 나는 왜 그가 1을 빼는 지 이해하지 못합니다. 아마도 어떤 반올림 때문일 것입니다. 예를 들어 수학 일 것입니다. 바닥 도움? – dtb
@dtb : 네, 맞습니다. –
@Mark, TotalMinutes가 둥근 것처럼 보이기 때문에 내가 말할 수있는 것에서. 나머지 2 분으로 설정하면 TotalMinutes = 2, Seconds = 59로로드됩니다. 1:59 대신 2:59가됩니다. – Brandon