php如何打印当前服务器时间,php-如何获取用户当前的日期而不是服务器的日期...

标签:php

我正在使用此简单的代码行将当前日期输入到var中.

$datevar = date("Y-m-d");

但这给了我服务器的当前日期而不是用户的当前日期.我有一个页面,来自世界各地的用户都在登录,因此这实际上是一个问题.无论如何,我可以使用php来获取它,还是需要让js参与其中?

解决方法:

您可以通过两种方式来实现.使用Javascript将其从浏览器发送到服务器,或使用“按IP定位”服务之一

您可以在这里找到Javascript解决方案get user timezone(感谢@bennes)

这是例子

// Get IP address

$ip_address = getenv('HTTP_CLIENT_IP') ?:

getenv('HTTP_X_FORWARDED_FOR') ?: getenv('HTTP_X_FORWARDED') ?:

getenv('HTTP_FORWARDED_FOR') ?: getenv('HTTP_FORWARDED') ?:

getenv('REMOTE_ADDR');

// Get JSON object

$jsondata = file_get_contents("http://timezoneapi.io/api/ip/?" . $ip_address);

// Decode

$data = json_decode($jsondata, true);

// Request OK?

if($data['meta']['code'] == '200'){

// Example: Get the city parameter

echo "City: " . $data['data']['city'] . "
";

// Example: Get the users time

echo "Time: " . $data['data']['datetime']['date_time_txt'] . "
";

}

当然最好将偏移量保存到$_SESSION.否则,它将每次生成传出请求.

所以你需要像

session_start();

if (!isset($_SESSION['offset_hours'])) {

$ip_address = getenv('HTTP_CLIENT_IP') ?: getenv('HTTP_X_FORWARDED_FOR') ?: getenv('HTTP_X_FORWARDED') ?: getenv('HTTP_FORWARDED_FOR') ?: getenv('HTTP_FORWARDED') ?: getenv('REMOTE_ADDR');

$jsondata = file_get_contents("http://timezoneapi.io/api/ip/?" . $ip_address);

$data = json_decode($jsondata, true);

if($data['meta']['code'] == '200'){

$_SESSION['offset_hours']= $data['data']['datetime']['offset_hours'];

}

}

echo $_SESSION['offset_hours']; // Here is offset in hours

标签:php

来源: https://codeday.me/bug/20191109/2012921.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值