2013-07-15 2 views
0

나는 현재 저희 가게가 열렸을 때나 닫힐 때 저희 웹 사이트에 표시 될 JavaScript를 만들려고합니다.Javascript between Two Times

기본적으로 두 번에 걸쳐 if 문을 만들고 싶습니다.이 문은 8:30과 5:30입니다.

저는 현재 효과적으로 다음과 같은 작업을하고 있습니다. 효과적으로 두 분의 '분'이 정의되어있어 서로를 취소합니다.

<script type="text/javascript"> 

    var Digital=new Date(); 
    var day=Digital.getDay(); 
    var hours=Digital.getHours(); 
    var minutes=Digital.getMinutes(); 

    // Monday - Open // 
    if (day==1 && hours>=8 && minutes>=30 && day==1 && hours<=17 && minutes<=30) 
    document.write('Open today until 5:30pm'); 

</script> 

누구든지 내가하려는 것을 달성 할 방법을 제안 할 수 있습니까? 이것에 대해

+0

@Amberlamps 위의 제 스 니펫은 데모 용입니다. 영업 시간 중 5시 30 분까지는 영업 중임을 보여줄 필요가 있지만, 다음 영업 시간에 폐장 할 때 메시지가 표시됩니다. 따라서 예를 들어, 월요일 5시 30 분 이후에는 '화요일 9 시까 지 휴무'라고 표시됩니다. 다양한 요일에 다양한 영업 시간이 있으므로 일을 기준으로 메시지를 표시해야합니다. –

답변

0

방법 : 8 * 60 + 30 = 51017 * 60 + 30 = 1050

if(day == 1 && hours*60+minutes >= 510 && hours*60+minutes <= 1050) { 
    // do stuff 
} 

. 여기에서 주목해야 할

+0

이 작동하지만 두 번째 if 문에서 'days'를 두 개 지정할 수 있어야합니다. 이게 효과가 있니? '// 월요일 - 열고 // if ((일 == 1 && 시간 = 8 && 분 = 30) || (일 == 1 && 시간 <= 17 & & 분 = 30)) 문서 .write ('오늘 오후 5시 30 분까지 개봉'); // 월요일 - 휴무일 // else ((요일 == 1 && 시간> = 17 && 분> = 31) || (요일 == 2 && 시간 <= 7 & & 분 = 59)) 문서 .write ('화요일까지 닫힌 화요일 8:30 am'); ' –

+0

이 작업을하지 못합니다! day = 1, hours = 20, minutes = 30 일 때는'오늘 오후 5시 30 분까지 '라고 쓰여질 것입니다. – Amberlamps

+0

오, 고마워. 이전 제안을 사용하여 '2 일'사이에 지정할 수있는 방법이 있습니까? (즉, 월요일 17시 31 분 및 화요일 8시 29 분 사이에이 메시지를 표시하십시오). –

0

한 가지

new Date() 

가 클라이언트의 시계에서 로컬 시간을 가져옵니다이다. 클라이언트의 시계가 다른 시간대에 설정되어 있으면 원하는 결과를 얻지 못할 수도 있습니다. 나는

var clientTime = new Date(); 
var clientTimeZone = clientTime.getTimezoneOffset(); 

가 //에, getTimezoneOffset 현재 로케일 사이에 분 오프셋 시간대를 반환, 어떤 오프셋 뺀 /뿐만 아니라 클라이언트의 시간대를 받고 추가 원하는 시간대에 그 변환 제안

과 같이 시작하는 것입니다 UTC.