How do I display the date/time for Australia in PHP?

Viewed 36

I have this countdown timer that I'm trying to make, but I need to current the current time/date in Australia. "Clearance Date" is the date I'd like to count down to.

At the moment I'm getting 10d 7h 0m 8s but I believe it should be 9d 21hr

<?php 
$clearance_date = 'August 20, 2022 09:00:00';
?>

<p id="demo"></p>

<script>
// Set the date we're counting down to
// 1. JavaScript
// var countDownDate = new Date("Sep 5, 2018 15:37:25").getTime();
// 2. PHP
var countDownDate = <?php echo strtotime($clearance_date) ?> * 1000;
var now = <?php echo time() ?> * 1000;

// Update the count down every 1 second
var x = setInterval(function() {

    // Get todays date and time
    now = now + 1000;

    // Find the distance between now an the count down date
    var distance = countDownDate - now;

    // Time calculations for days, hours, minutes and seconds
    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((distance % (1000 * 60)) / 1000);

    // Output the result in an element with id="demo"
    document.getElementById("demo").innerHTML = days + "d " + hours + "h " +
        minutes + "m " + seconds + "s ";

    // If the count down is over, write some text
    if (distance < 0) {
        clearInterval(x);
        document.getElementById("demo").innerHTML = "EXPIRED";
    }
}, 1000);
</script>
1 Answers

Using PHP to set the date uses the server time. Whereas using now in javascript get the client time.

I would pass the duration (hours left) from PHP to set the javascript variable. And then count that down and add to current date.

Related