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

jri*_*iro 26 javascript php timezone date timezone-offset

我想将PHP服务器时间传递给我的JavaScript文件.

PHP代码:

date_default_timezone_set('Australia/Perth');
echo date("r");
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

$.get('time.php', function(data) {
  today = new Date(data);
  closing = new Date(data);
});
Run Code Online (Sandbox Code Playgroud)

PHP代码返回Sun,2012年3月18日12:01:23 +0800这是澳大利亚/珀斯的正确时间.但是这会返回无效的JavaScript日期对象.

当我尝试将其转换为时间戳时:

 echo strtotime(date("r"));
Run Code Online (Sandbox Code Playgroud)

我收到了JavaScript日期Sun Mar 18 2012 04:03:14 GMT + 0000(WET)(这是今天js var的值)

如果我使用:

echo gmstrftime('%s');
Run Code Online (Sandbox Code Playgroud)

我得到:2012年3月17日星期六20:04:30 GMT + 0000(WET).

有人可以帮帮我吗?

sim*_*lar 55

nallar中的PHP与JavaScript不完全相同,这将完全模仿JavaScript:

echo date('D M d Y H:i:s O');
Run Code Online (Sandbox Code Playgroud)

  • 那不是我在Javascript中看到的格式。我看到这种格式:`date('DM d YH:i:s \ G \ M \ TO(T)');` (5认同)

Rob*_*Rob 12

您也可以保留 PHP 代码原样并使用 JavaScript 解析日期:

var date = new Date(Date.parse(DATE));
Run Code Online (Sandbox Code Playgroud)

那么即使是这样的事情也会起作用:

new Date(Date.parse('11 March 2017'));
Run Code Online (Sandbox Code Playgroud)

通过控制台日志输出(GMT+1000 是因为我在澳大利亚):

Sat Mar 11 2017 00:00:00 GMT+1000
Run Code Online (Sandbox Code Playgroud)

更多信息在这里:https : //developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Global_Objects/Date/parse


Lun*_*una 10

$.get('time.php', function(data) {
  today = new Date(data);
  closing = new Date(data);
});
Run Code Online (Sandbox Code Playgroud)

将字符串乘以1000的目的是什么?那个操作没有意义.

编辑:

这个PHP将适用于此.

echo date('D, d M y H:i:s')." +0000";
Run Code Online (Sandbox Code Playgroud)


小智 6

date('D M d Y H:i:s O')
Run Code Online (Sandbox Code Playgroud)

如果您当前的区域设置不是英语,则无效.

更好的选择是使用

new Date(<? echo date("Y, n - 1, d, H, i, s") ?>)
Run Code Online (Sandbox Code Playgroud)

  • 警告:PHP返回编号为1-12的月份,但Javascript使用0-11.这总会给你一个月的时间戳.另外,不能简单地从JS日期对象中减去一个月,因为Javascript将在构造时"更正"日期...如果您在1月31日运行此代码,Javascript将被赋予"2月31日",然后它将更正将于3月3日(假设2月28日). (3认同)

geo*_*iar 5

以下是 DateTime 对象的示例:

PHP 代码(适用于 PHP 5.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);
Run Code Online (Sandbox Code Playgroud)

JavaScript 代码

$.get('time.php', function(data) {
  var serverDate = new Date(data);
});
Run Code Online (Sandbox Code Playgroud)