javascript - 使用 Javascript 和 PHP 加载第一页/单页时客户端的 UTC 偏移量
问题描述
我正在使用以下内容来确定 UTC 偏移量并将其传递给 PHP 变量 ( $utc_offset
)。问题是它$utc_offset
只会在第二页加载时有一个值(在第一页加载时为空)。如何在一页加载中将 UTC 偏移量传递给 PHP?
<script>
var dateVar = new Date();
var offset = dateVar.getTimezoneOffset();
document.cookie = "offset="+offset/60;
</script>
<?php
echo $utc_offset = $_COOKIE['offset'];
?>
解决方案
所以:
- 用户首次访问该页面
- 一个请求被发送到服务器
- 服务器向用户发送内容,包括 Javascript 代码
- Javascript 代码将生成一个 cookie
- 在随后的加载中,cookie 是正确的(但不是在第一次加载时)
问题是,为了执行您的 Javascript,您需要将其发送到浏览器,此时您需要的 cookie 尚未创建。但是,即使您无法在第一次加载时解决此问题,您也可以通过在创建 cookie 后立即发送AJAX 请求来实现几乎类似的行为,这样服务器就会得到它。
因此,当偏移量未知时,您需要处理首次访问,但随后自动发送到服务器的 AJAX 请求可以解决此问题。
推荐阅读
- python - Python - 你能帮我从我重复的一段代码中创建一个类吗?
- node.js - nodejs的理想keepAliveTimeout是多少
- mysql - 如何查明 MySQL 中的语法错误
- django - 通过覆盖 clean 将表单验证添加到 django modelform
- angular - 通过 HttpClient 使用 Mailgun 时出现 CORS 问题
- php - 通过codeigniter中的视图发送数据的问题
- kubernetes - 基于 URL 的具有亲和力的服务代理
- checkbox - 在 Flex 中禁用复选框的选择
- javascript - C3.js:删除圆圈后仍显示Tooltip
- sql - 是否可以进行具有重复 ID 的多对一 JOIN?