我确信这很简单,但我找不到答案。
我将一个double传递给PHP页面,并使用代码检索它:
$timestamp = $_POST['timestamp'];
PHP脚本将传递的数字(1291328282)更改为-1456872199。代码:
$timestamp = (float) $_POST['timestamp'];
有相同的结果。
答案 0 :(得分:0)
在声明变量后如何处理数据?通过表单提交的所有内容都是字符串。 PHP将数据作为字符串放入$ _POST(数组除外)。 $ timestamp在声明时应具有正确的值,因为字符串不像整数那样受约束。在声明它之后你用$ timestamp 做什么是可能导致PHP匆匆离开的。
答案 1 :(得分:0)
PHP没有区别。 'float','double'或'real'是相同的数据类型。
$_POST['timestamp'];
如果1291328282
的值不是双倍,而是int
,则UNIX_TIMESTAMP
看起来不会与EPOCH混淆。
我不确定你希望得到什么,但我认为你想要:
$timestamp = (int)$_POST['timestamp'];
一点额外的知识:
当从float转换为字符串后,将删除尾随零。
示例(5.3。^)
echo (string)5.00500; // outputs 5.005
echo (string)30.0000; // outputs 30
您想要做的是:
$timestamp = abs((int)$_POST['timestamp']);