Если вы отправляете значение таким образом, что PHP преобразует его в синтаксис экспоненты (т. Е. 1.2953088E + 12), есть хитрый прием, который вы можете сделать, используя printf
или sprintf
, чтобы получить полное число):
php -r '$date = 12434613435134661234; echo $date;'
1.2434613435135E+19
php -r '$date = 12434613435134661234; printf("%.0f", $date);'
12434613435134660608
Затем можно использовать sprintf
, чтобы просто присвоить этот номер переменной (в виде строки) и передать его в удаленный API.
Обратите внимание на отсутствие точностиот преобразования числа с плавающей запятой, однако.
Edit :
Я также хочу отметить, что десятичные числа без знака в PHP выглядят точными до 19 мест.Таким образом, это возвращает правильное значение:
php -r '$date = 6243461343513466123; printf("%u", $date);'
6243461343513466123
При выражении того же значения, что и число с плавающей точкой, оно теряет свою точность:
php -r '$date = 6243461343513466123; printf("%.0f", $date);'
6243461343513465856