Currently we have this code, which works, except it needs to use a specified timezone, rather than the user's timezone:
$('#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');
});
I have seen several examples of adding timezones, but none are using the jquery countdown plugin in the same way we are.
Any ideas on how to add +10 as the current timezone? so it uses that rather than the user's timezone?
Thanks.
I am guessing you are using https://github.com/hilios/jQuery.countdown, because it doesn't have timezone options to use it.
I used moment.js and moment-timezone-with-data.js(contains all the timezones) to handle timezone.
<div data-countdown="2015/05/20" data-zone="US/Central" class="countdown"></div>
function to convert the date to proper timezone and returns in milliseconds
var timefun = function (countdown,zone){
var date = moment.tz(countdown,"YYYY/MM/DD",zone);
return date.valueOf();
}
make use of the above function to pass milliseconds as an argument to jQuery.countdown()
$(".countdown").countdown(timefun($(".countdown").data("countdown"),$(".countdown").data("zone")))
example: http://jsfiddle.net/heLrsnqx/2/
if you are using http://keith-wood.name/countdown.html, refer following example
example: http://jsfiddle.net/w1oyv8kv/
Looks like the actual date that is used in the code is coming from that PHP snippet. You can set the default timezone in PHP using:
date_default_timezone_set($timezone_identifier);
$timezone_identifier
is a string that can be things like 'UTC'
or 'America/Los_Angeles'
.
For a full list of supported timezone identifiers, see the related PHP docs.
According to the documentation, you can access the finalDate object with event.finalDate
. So if you can't set the timezone server side, do event.finalDate.setUTCHours(10)
before calling event.strftime
More on setUTCHours here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCHours
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With