2015-05-06 3 views
6

Zur Zeit haben wir in diesem Code, der funktioniert, außer es eine bestimmte Zeitzone verwenden muss, anstatt die Zeitzone des Benutzers:Zeitzone einstellen, während jQuery CountDown mit

$('#countdown').countdown('<?php echo $date_end?>').on('update.countdown', function(event) { 
      var format = '%-S second%!S'; 

      if (event.offset.years > 0 || event.offset.weeks > 0 || event.offset.days > 0 || event.offset.hours > 0 || event.offset.minutes > 0) { 

       if(event.offset.minutes > 0) { 
        format = '%-M minute%!M ' + format; 
       } 
       if(event.offset.hours > 0) { 
        format = '%-H hour%!H ' + format; 
       } 
       if(event.offset.days > 0) { 
        format = '%-d day%!d ' + format; 
       } 
       if(event.offset.weeks > 0) { 
        format = '%-w week%!w ' + format; 
       } 
      } 
      $(this).html(event.strftime(format)); 
     }).on('finish.countdown', function(event) { 
      $(this).html('Finished'); 
     }); 

ich einige Beispiele für das Hinzufügen Zeitzonen gesehen haben, aber niemand benutzt das jquery countdown plugin auf dieselbe Weise wie wir es sind.

Haben Sie Ideen, wie Sie +10 als aktuelle Zeitzone hinzufügen können? verwendet es also eher als die Zeitzone des Benutzers?

Danke.

+0

Ich bin nicht sicher, ob ich die Art und Weise bin Verstehen Sie das Plugin verwenden, oder ob es auch das gleiche Plugin wie folgt aus: http : //keith-wood.name/countdown.html#zones Allerdings habe ich das Plugin auf einer Site verwendet und ihm das Datum/die Uhrzeit zum Countdown in Zeitzone -7 wie folgt übergeben: jQuery ('# countdown'). countdown ({bis: neues Datum (2020, 1-1, 11, 5, 35, 35), Zeitzone: -7, Format: 'YODHMS', kompakt: wahr}); Vielleicht hilft das? – jonathanbell

Antwort

4

Sieht aus wie das tatsächliche Datum, das in dem Code verwandt wird, von dem PHP-Snippet stammt. Sie können die Standard-Zeitzone in PHP gesetzt werden:

date_default_timezone_set($timezone_identifier); 

$timezone_identifier ist eine Zeichenfolge, die Dinge wie 'UTC' oder 'America/Los_Angeles' sein kann. Eine vollständige Liste der unterstützten Zeitzonen-IDs finden Sie unter related PHP docs.

+0

Korrekt, es wird von PHP geparst. In diesem Format: 2015-05-14 17:30:00 Mit PHP oder Javascript, wie kann ich javascript sagen, dass dieses Datum/Zeit in GMT + 10 und nicht die eigene Zeitzone des Benutzers ist? – Martin

+0

Ich denke, was Michal sagt ist, dass Sie ein Array wie folgt einrichten können: 'var timeZones = [" GMT "," EST "," CMT "];' und dann etwas wie 'date_default_timezone_set (timeZones [1]) ; ' – jmcmahon443

1

Entsprechend der Dokumentation können Sie auf das finalDate-Objekt mit event.finalDate zugreifen. Also, wenn Sie nicht die Zeitzone Server-Seite einstellen können, tun event.finalDate.setUTCHours(10) vor event.strftime

Mehr auf setUTCHours Aufruf hier: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCHours

+0

Ich habe versucht, event.finalDate.setUTCHours (10) hinzuzufügen; kurz vor $ (this) .html (event.strftime (format)); und nichts ändert sich. – Martin

5

Ich vermute, Sie https://github.com/hilios/jQuery.countdown verwenden, weil sie es nicht Zeitzone Optionen zu verwenden .

Ich verwendete moment.js und moment-timezone-with-data.js (enthält alle Zeitzonen) Zeitzone zu behandeln.

<div data-countdown="2015/05/20" data-zone="US/Central" class="countdown"></div> 

Funktion das Datum richtige Zeitzone und kehrt in Millisekunden

var timefun = function (countdown,zone){ 
var date = moment.tz(countdown,"YYYY/MM/DD",zone); 
return date.valueOf(); 
} 

make Verwendung der obigen Funktion zu übergeben Millisekunden als Argument an jQuery.countdown()

$(".countdown").countdown(timefun($(".countdown").data("countdown"),$(".countdown").data("zone"))) 
konvertiert

Beispiel: http://jsfiddle.net/heLrsnqx/2/

, wenn Sie http://keith-wood.name/countdown.html verwenden, finden folgende Beispiel

Beispiel: http://jsfiddle.net/w1oyv8kv/

+0

Hallo. Ich verwende dieses Plugin: http://keith-wood.name/countdown.html - Aufruf nach dem Beispielcode in der obigen Frage – Martin

+0

Danke das Keithwood-Beispiel funktioniert gut, AUSSER, es fügt eine fehlerhafte 3 vorne hinzu der Tage, siehe hier: http://jsfiddle.net/w1oyv8kv/3/ – Martin

+0

Monat reicht von 0 bis 11, Sie erwähnten 2015,5,30 fällt es unter Juni, wenn Sie nach Mai suchen, ändern Sie es bis 2015, 4,30 –