php и ajax проходят дату strtotime разговор отличается - PullRequest
0 голосов
/ 06 ноября 2018

Мой код для получения даты в jquery приведен ниже:

 var pathname = window.location.pathname; // Returns path only
            var url      = window.location.href;     // Returns full URL
            var splits   =url.split('?');
            if(splits[1])
            {
                 var splits2   = splits[1].split('=');
                 var newDate   = splits2[1];
            }
            else
            {
               var  date    = new Date(),
                    yr      = date.getFullYear(),
                    month   = date.getMonth() < 10 ? '0' + date.getMonth() : date.getMonth(),
                    day     = date.getDate()  < 10 ? '0' + date.getDate()  : date.getDate(),
                    newDate = yr + '-' + month + '-' + day;

            }

После этого я отправляю это на php код:

         $.ajax({
                      type:'post',
                      url:'<?php echo BASE_URL; ?>dashboard/get_weedays',
                      async:false,
                      data:{date : newDate},
                      success:function(response)
                      {

                        var obj = JSON.parse(response);                        
                        design_for_week(obj);

                      }
                  })
In php i am getting this date and converting it into strtotime 

но он возвращает мне разные значения. В php я делаю это

$date  =  $this->input->post("date");
$dt = strtotime($date);
  echo $dt;exit;

for date 2018-11-06 timestamp in php is : 1541442600

но когда я передаю дату из ajax и после ее получения на php она возвращает мне timestam вроде: 1541442600

оба отличаются, может кто-нибудь предложить мне это? как я могу решить это 1541615400

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018
var pathname = window.location.pathname; // Returns path only
            var url      = window.location.href;     // Returns full URL
            var splits   =url.split('?');
            if(splits[1])
            {
                 var splits2   = splits[1].split('=');
                 var newDate   = (new Date(splits2[1])).toUTCString();
                 date = new Date(newDate).getTime()/1000;
            }
            else
            {
               var  dates   = (new Date()).toUTCString();
               date = new Date(dates).getTime()/1000;

            }

Для этого нам нужно сделать так, потому что вам нужно скрыть Tiem Inti UTC, а затем разделить это с 1000, потому что это время клиента

0 голосов
/ 06 ноября 2018

Передача метки времени UTC от клиента, чтобы избежать разницы во времени между клиентом и сервером.

В JavaScript получить метку времени UTC:

     var pathname = window.location.pathname; // Returns path only
     var url      = window.location.href;     // Returns full URL
     var splits   =url.split('?');
     if(splits[1])
     {
          var splits2 = splits[1].split('=');
          var getDate = splits2[1];
          var datum = Date.parse(getDate); // gets date//
          var newDate =  Math.floor(datum/1000);
          //console.log(newDate);
     }
     else
     {
          var  date   = new Date(new Date().toUTCString());
          var jsmonth = date.getMonth()+1;
          var yr      = date.getFullYear(),
          var month   = jsmonth < 10 ? '0' + jsmonth : jsmonth, //january is 0
          var day     = date.getDate()  < 10 ? '0' + date.getDate()  : date.getDate(),
          var getDate = yr + '-' + month + '-' + day;
          var datum = Date.parse(getDate);
          var newDate =  Math.floor(datum/1000);
          //console.log(newDate);
     }

читать дальше: Как получить метку времени UTC в JavaScript?

...