Carbon Php timer (step counter) returns NaN only iPhone

Viewed 27

I have a problem with Carbon PHP. I receive a date from Backend and make a step counter. But the step counter works fine on computers and android. But on iPhone, it gives Nan. How can I solve this?

      <script>
            var c = new Date('{{ \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $productOfDay->expired_at) }}').getTime();
            console.log(c); // iPhone returns NaN here

            var mf = setInterval(function() {
                var n = new Date().getTime();
                var t = c - n;
                var da = Math.floor(t / (1000 * 60 * 60 * 24));
                var ho = Math.floor((t % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));

                var mins = Math.floor((t % (1000 * 60 * 60)) / (1000 * 60));
                var sec = Math.floor((t % (1000 * 60)) / 1000);
                document.getElementById("days").innerHTML = da;
                document.getElementById("hours").innerHTML = ho;
                if (ho < 10) {
                    document.getElementById("hours").innerHTML = "0" + ho;
                }
                document.getElementById("mins").innerHTML = mins;
                if (mins < 10) {
                    document.getElementById("mins").innerHTML = "0" + mins;
                }
                document.getElementById("secs").innerHTML = sec;
                if (sec < 10) {
                    document.getElementById("secs").innerHTML = "0" + sec;
                }
                if (t < 0) {
                    clearInterval(mf);
                    document.getElementById("days").innerHTML = "";
                    document.getElementById("hours").innerHTML = "";
                    document.getElementById("mins").innerHTML = "";
                    document.getElementById("secs").innerHTML = "";
                    document.getElementById("end").innerHTML = "TIMES UP Please try new dates!!";
                }   
       }, 1000);
  </script>

1 Answers

I solved my problem. I deleted carbon and use json_encode.

            const product = (<?= json_encode($productOfDay) ?>);
            var b = new Date(product.expired_at).getTime();
Related