【问题标题】:Cast timestamp with intval() change the int to 2147483647使用 intval() 转换时间戳将 int 更改为 2147483647
【发布时间】:2016-09-17 13:36:07
【问题描述】:

在我的应用程序中,我从 Javascript 向 PHP 发送一个变量,它是一个时间戳。例如,从 javascript 我发送这个 var :

var date = new Date().getTime();   //(date = 1474119172775)

当我在我的 php 中检索此日期时,我会执行 intval() 以确保在存储到我的 sql 数据库之前将值转换为 int。

但是当我这样做时,我得到以下结果:

$dateFrom = intval($json['date']);  // ($dateFrom = 2147483647)

我在 PHP 文档中看到 intval 函数可以为 32 位系统返回此值,那么我可以使用什么将输入的 var 转换为 int ?

【问题讨论】:

  • 在客户端上除以 1000,因为它是毫秒
  • 或者只是将其切片为字符串:substr(..., 0, -3)
  • intval(int)基本没有区别。

标签: javascript php


【解决方案1】:

getTime 提供的客户端上的 AS 时间戳以 毫秒 为单位(秒乘以 1000),您必须像这样传递它:

var date = (new Date().getTime()) / 1000;

并且在服务器端没有任何改变。

【讨论】:

  • 我尝试这样做,但我的日期现在以这种格式存储,例如:1474120752 而不是 1474120752000。我们在这个日期(1474120752)返回 javascript,我无法创建有效日期。我还必须在 javascript 中乘以 * 1000 ?
  • 是的,你肯定会的。
猜你喜欢
  • 2014-12-31
  • 2021-06-03
  • 2012-12-26
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
  • 2018-01-02
  • 2020-02-13
相关资源
最近更新 更多