У меня действительно есть проблемы с str_replace на моем веб-сервере, приводящем интергеры к научной нотации.
$strContent = "Yesterday was ##yesterdayTimestamp##!";
$yesterDayTimestamp = floor((time() - (24 * 3600)) / (24 * 3600)) * 24 * 3600 * 1000 ;
$strContent = str_replace("##yesterdayTimestamp##", $yesterDayTimestamp, $strContent) ;
echo $strContent;
// expected output / result on local server
// "Yesterday was 1423612800000!"
// result on remote production server
// "Yesterday was 1.4236128E+12!"
Пытаюсь решить проблему с str()
или же format_number()
похоже не работает
Как я могу предотвратить использование php научной нотации в коде?
Я нашел решение вопроса, изменив конфигурацию php, например: Сокращение научной нотации PHP.
Однако, поскольку я нахожусь в размещенной среде, это не так просто.
Пока есть менее 14 значащих цифр, printf(%f)
работает довольно хорошо:
$big = 1234567890123456;
echo $big, "\n"; # 1.2345678901235E+15
printf("%.0f\n", $big); # 1234567890123456
Если вам нужно больше, рассмотрите BCMath / GMP
Других решений пока нет …