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)
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)
以下是 DateTime 对象的示例:
$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)
$.get('time.php', function(data) {
var serverDate = new Date(data);
});
Run Code Online (Sandbox Code Playgroud)