我想将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,2012年3月18日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)。
有人可以帮帮我吗?
答案 0 :(得分:53)
nallar中的PHP与JavaScript不完全相同,这将完全模仿JavaScript:
echo date('D M d Y H:i:s O');
答案 1 :(得分:10)
$.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";
答案 2 :(得分:6)
date('D M d Y H:i:s O')
如果您当前的语言环境不是英语,则无效。
更好的选择是使用
new Date(<? echo date("Y, n - 1, d, H, i, s") ?>)
答案 3 :(得分:4)
您也可以保留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
答案 4 :(得分:2)
以下是DateTime对象的示例
PHP代码(适用于&gt; 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);
});
答案 5 :(得分:1)
一个好方法是时间戳
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
当前服务器时间为:2013年10月9日星期三16:18:13 GMT + 0300(GTB标准时间)
答案 6 :(得分:0)
可能有更好的解决方案,但是这个解决方案对我有用。关键问题是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
答案 7 :(得分:-3)
非常简单:
new Date("<?= date('Y/m/d H:i:s'); ?>");