【发布时间】:2015-02-04 22:30:29
【问题描述】:
我将 javascript 时间戳数据发送到 php 以添加到我输入 TIMESTAMP 的 mysql 中:
DATABASE - startTime 类型:
现在我尝试使用 ajax,时间戳从 javascript var startTime = Date.now(); 发送到我需要转换为 mysql 的 TIMESTAMP 类型的 php...所以我尝试:
$datum = $app->request->post('startTime');
$startTime = $datum->format('Y-m-d H:i:s'); //FIRST ATTEMP
$startTime = date("Y-m-d H:i:s", $datum); //SECOND TRY
上面我写了两个我尝试但都不起作用的案例...我如何将其转换为正确的格式以将其添加到数据库...
你可能会问,为什么当你在 PHP 中有这个时,为什么用 JS 来获得它? 因为我的应用程序将使用澳大利亚(以及全世界)的人,而服务器在欧洲,所以如果我使用 php 服务器时间,那么我会做出错误的日期
【问题讨论】:
-
依赖 PHP 时间戳应该没有问题,因为它可以很容易地转换为任何时区。依赖客户时间不是一个好主意。
-
但是我怎么能去什么是用户时区,什么是用户正确的时间?用 php
-
您无法确定时区,但您可以根据 IP 地址位置来衡量它,以便做出有根据的猜测。然而,用户应该能够将他们的时区更改为他们想要的。您可以使用
DateTime类等 PHP 库将时间戳转换为多个时区。 -
但是有什么方法(因为我的应用程序是基于时间任务的)在没有 JS 的情况下获取当前用户时间,所以只使用 php,以及如何?
-
仅使用 PHP 无法获取用户的时区。这就是为什么用户应该得到一个他们可以接受或拒绝并选择正确时区的建议。您不应依赖客户端时间,因为可以通过将系统时钟更改为过去或将来的时间来轻松操纵它。根据您服务器的时区和用户的选择,您可以提供正确的日期和时间表示。
标签: javascript php mysql date timestamp