将PHP日期发送为JavaScript日期格式

8xiog9wr  于 2023-05-21  发布在  PHP
关注(0)|答案(9)|浏览(137)

我想把我的PHP服务器时间传递给我的JavaScript文件。
PHP代码:

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

JavaScript:

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

PHP代码返回Sun,18 Mar 2012 12:01:23 +0800,这是澳大利亚/珀斯的正确时间。但这将返回一个无效的JavaScript日期对象。
当我尝试将其转换为时间戳时,如下所示:

echo strtotime(date("r"));

我得到JavaScript日期Sun Mar 18 2012 04:03:14 GMT+0000(WET)(这是今天js var的值)
如果我用途:

echo gmstrftime('%s');

我得到:2012年3月17日星期六20:04:30 GMT+0000(WET)。
有人能帮帮我吗?

uemypmqf

uemypmqf1#

Luna的答案中的PHP代码与echo date并不完全像JavaScript代码。这将完全模仿JavaScript代码:

echo date('D M d Y H:i:s O');
hs1rzwqc

hs1rzwqc2#

你也可以保持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

关于Date.parse()的更多信息在这里:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

9w11ddsr

9w11ddsr3#

$.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";
eqqqjvef

eqqqjvef4#

date('D M d Y H:i:s O')

如果您当前的区域设置不是英语,则无法正常工作。
更好的替代方法是用途:

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

cfh9epnr5#

下面是一个DateTime对象的例子:

PHP代码(适用于PHP5.3或更高版本)

$serverDate = new \DateTime('NOW');

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

JavaScript代码

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

9q78igpj6#

一个很好的方法是timestamp:

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

1381324693000
当前服务器时间为:2013年10月9日星期三16:18:13 GMT+0300(GTB标准时间)

rhfm7lfc

rhfm7lfc7#

可能有更好的解决方案,但这一个对我来说很有用。关键问题是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
xzv2uavs

xzv2uavs8#

对我有用的是:

<?php $today = date("Y/m/d H:i:s"); ?>

<script>new Date(Date.parse('<?php echo $today; ?>'))</script>
3npbholx

3npbholx9#

很简单:

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

相关问题