Javascript 时间戳转 php - mysql 时间戳类型

标签 javascript php mysql date timestamp

我将 javascript 时间戳数据发送到 php,以添加到我输入 TIMESTAMP 的 mysql 中:

数据库 - 开始时间类型:

enter image description here

现在我尝试使用 ajax 将时间戳从 javascript var startTime = Date.now(); 发送到 php,我需要在其中转换为 mysql 的 TIMESTAMP 类型...所以我尝试:

$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 服务器时间那么我会输入错误的日期

最佳答案

好吧,首先,您应该确保 $datum 中的数据实际上是一个数字:

$datum = $app->request->post('startTime');
if ( ! ctype_digit($datum)) {
    die('Invalid startTime!');
}

在 Javascript 中,Date.now() 方法返回以 毫秒 为单位的时间戳。处理日期和诸如此类的东西的 PHP 函数使用,因此您必须将它除以 1000(毫表示“千”)以将其转换为秒:

$datum = ($datum / 1000);

如果您已经在浏览器中完成了此操作,那么您当然应该忽略它。

在将秒数插入数据库之前,您必须将秒数转换为 MySQL 可以理解的格式。 DATETIME/TIMESTAMP 格式为 YYYY-MM-DD HH:MM:SS。在 PHP 中,您可以像这样格式化它:

$datum = date('Y-m-d H:i:s', $datum);

关于Javascript 时间戳转 php - mysql 时间戳类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27338161/

相关文章:

javascript - 如何更改 Ionic 2 中后退按钮的标签?

php - gii 不在 yii 中工作

php - 什么可以阻止带有 PHP 变量的 CSS 加载?

mysql - 如何在联接中对值进行分组

mysql 动态游标

javascript - 如何动态创建 Backbone View 元素?

javascript - 如何使用 AJAX 传递 2 个值以与 PHP 进行比较

用于更新 MySQL 表中的多个列的 PHP 脚本

mysql - Mysql 连接器/J 8.0.17(com.mysql.cj.jdbc.Driver) 和 Tomcat 9 的问题

输入上的 JavaScript 更改事件[类型 ="file"]