Отправьте дату PHP на javascript date Формат

Я хочу передать свое время PHP-сервера в файл javascript.

Код PHP:

date_default_timezone_set('Australia/Perth'); echo date("r"); 

JS:

 $.get('time.php', function(data) { today = new Date(data); closing = new Date(data); }); 

Php возвращает Sun, 18 марта 2012 г. 12:01:23 +0800, что является правильным временем для Австралии / Перта. Но это возвращает недопустимый объект даты javascript.

Когда я пытаюсь преобразовать его в timestamp, например:

      echo strtotime(date("r")); 

    Я получаю javscript date Sun Mar 18 2012 04:03:14 GMT + 0000 (WET) (это значение сегодняшнего js var)

    Если я использую:

     echo gmstrftime('%s'); 

    Я получаю: Сб Мар 17 2012 20:04:30 GMT + 0000 (WET).

    Кто-нибудь может помочь мне?

    благодаря

    Related of "Отправьте дату PHP на javascript date Формат"

    PHP в nallar's не совсем похож на JavaScript, это будет имитировать JavaScript точно:

     echo date('DM d YH:i:s O'); 
     $.get('time.php', function(data) { today = new Date(data); closing = new Date(data); }); 

    Какова была цель умножения строки на 1000? Эта операция не имеет смысла.

    редактировать:

    Этот PHP будет работать для этого.

     echo date('D, d M y H:i:s')." +0000"; 
     date('DM d YH:i:s O') 

    Не будет работать, если ваш текущий язык не является английским.

    Лучшей альтернативой является использование

     new Date(<? echo date("Y, n - 1, d, H, i, s") ?>) 

    Вы также можете просто оставить PHP как есть и проанализировать дату с помощью JavaScript.

     var date = new Date(Date.parse(DATE)); 

    Тогда даже такие вещи будут работать:

     new Date(Date.parse('11 March 2017')); 

    Какие выходы через консольный журнал (GMT + 1000 – это потому, что я в Австралии):

     Sat Mar 11 2017 00:00:00 GMT+1000 

    Дополнительная информация здесь: https://developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

    Там могут быть лучшие решения, но этот трюк сделал для меня. Ключевой проблемой является то, что javascript использует месяцы 0-11, в то время как php использует 1-12, как упоминалось ранее.

     function convert_date_php_js($date){ $converted_date = date("Y", strtotime($date)) . ', ' . (date("n", strtotime($date))-1) . ', ' . date("j", strtotime($date)); return $converted_date;} $priceDate = "2016-09-14"; $d = convert_date_php_js($priceDate); //returns 2016, 8, 14 

    Хорошим способом является временная метка

      echo $data = time()*1000; echo ' <div id="setxDatetime">CURRENT SERVER TIME IS: </div> <script type="text/javascript"> var x = document.getElementById("setxDatetime"); x.innerHTML = x.innerHTML + new Date(' . $data . '); </script> '; 

    1381324693000

    ВРЕМЯ ТЕКУЩЕГО СЕРВЕРА: Wed Oct 09 2013 16:18:13 GMT + 0300 (стандартное время GTB)

    Вот пример с объектом DateTime

    PHP-код (работает в> PHP 5.3)

     $serverDate = new \DateTime('NOW'); // if you want to set different time zone // $serverDate = new \DateTime('NOW', new \DateTimeZone('Australia/Perth')); echo $serverDate->format(DATE_ATOM); 

    JS-код

     $.get('time.php', function(data) { var serverDate = new Date(data); }); 

    очень просто:

     new Date("<?= date('Y/m/d H:i:s'); ?>");