Sergey_K
Локаль я даже не трогал никогда
Kirill | CosmosDrops
сейчас покажу
Sergey_K
Любопытно, что у тебя и ниже все разделители запятая
Иван
— На моем компе все работает.
— Отправим клиенту твой комп.
так появился докер
Kirill | CosmosDrops
Любопытно, что у тебя и ниже все разделители запятая
любопытно то, что по идеи (float) должно выдавать число без учета локали, как я думал. У меня мускуль ругался, что set price = '1,2' это шайтанство, а так оно и есть. А оно получилось после (float) числа с точкой
Kirill | CosmosDrops
Sergey_K
Ну, значит у тебя "тюненый" php
Sergey_K
Я сначала тоже про сиквел подумал
Sergey_K
Но у тебя все времена тоже с запятыми
Миша
Миша
есть объект, но remove нифига
Андрей
потому что надо getCollection
Миша
Миша
разницы нет,
Миша
Миша
https://docs.modx.com/xpdo/2.x/class-reference/xpdoobject/persistence-methods/remove
вот документация
Миша
все по ней
Kirill | CosmosDrops
Но у тебя все времена тоже с запятыми
Замечание:
Символ десятичной точки определяется из настроек локали текущего скрипта (категория LC_NUMERIC). Смотрите также setlocale().
Из доки пхп, но в разделе преобразования числа в строку. Там где преобразование в float хер они это пишут
Sergey_K
а кто ее у тебя поменял?
Sergey_K
в этом основной вопрос
Sergey_K
я помню, что из-под винды csv парсил драйверами ODBC. Так вот там вообще невозможно поменять разделитель :)
Kirill | CosmosDrops
это не важно, преобразование (float)$x должно на выходе давать именно тип float, а не строку с локальным разделителем
Миша
https://prisma-cms.com/topics/zaprosyi-na-update-delete-i-t.p.-a-tak-zhe-otladka-chistyix-sql-zaprosov-vyipolnyaemyix-cherez-pdo.html
полезно
Kirill | CosmosDrops
кстати сейчас проверю
Sergey_K
Sergey_K
float хранится двумя частями, вот и все
Sergey_K
А любой человекочитаемый вид это тупо строка.
Sergey_K
И для php разделитель один, для SQL может быть другой
Sergey_K
Это и есть локаль
Sergey_K
Ты можешь делать CAST(var to DECIMAL) в запросах. Ну, попробовать как минимум
Sergey_K
Но проще поменять локаль
Kirill | CosmosDrops
эммм, т.е. хочешь сказать, что бывает sql такой, что там decimal update идет в виде '11,99'?
Sergey_K
Конечно
Sergey_K
Локаль в SQL поставь и вперед
Kirill | CosmosDrops
Kirill | CosmosDrops
смотри, у меня сайт и phpmyadmin на одном хосте
Kirill | CosmosDrops
сайт дает с запятой, мускль работает с точкой
Sergey_K
Ан нет
Sergey_K
Я тебе наврал
Sergey_K
Это в SQL server, значит. У оракла все жестко.
Sergey_K
Kirill | CosmosDrops
я и говорю, это бред какой то. Я понимаю, когда ты флоат в стринг преобразуешь, пусть локаль использует. Но блин строку в флоат - это какой то бред, как по мне
Sergey_K
Он что дает?
Kirill | CosmosDrops
я уж локаль поменял, на самом деле
Kirill | CosmosDrops
а что проверить?
Kirill | CosmosDrops
могу обратно вернуть попробовать
Sergey_K
Ну тогда скажи "спасибо" тому, что ее менял :)
Kirill | CosmosDrops
parseFloat?
Sergey_K
Да
Sergey_K
JS наверняка берет локаль вообще с машины юзера
Gaius Cassius
Sergey_K
Ну я не в теме, поэтому и предполагаю. По логике это клиент сайд. Откуда ей еще брать локаль?
Kirill | CosmosDrops
Sergey_K
ПРочитал
Sergey_K
Только .
Sergey_K
А парсит слева до говносимвола. Целая часть
Sergey_K
И справа от говносимвола - дробная
Sergey_K
В общем, опять госдеп виноват :))
Gaius Cassius
Трамп на...рал в локалях😂
Sergey_K
Это ж у американцев "," это разделитель разрядов, а "." десятичные
Sergey_K
Надо сделать православный джаваскрипт
Kirill | CosmosDrops
В общем, опять госдеп виноват :))
тут еще интересная деталь появилась, вернул локаль, modx console показывает с запятой, чистый скрипт на php показывать с точкой
Kirill | CosmosDrops
видимо сам modx локаль какую то пытается впихнуть
Sergey_K
Епта
Kirill | CosmosDrops
Kirill | CosmosDrops
Sergey_K
а в консоли то же самое?
Kirill | CosmosDrops
а в консоли которая в modx с запятой ) а типы да, точно такие же
Алексей
report.pdf
Sergey_K
Алексей, видимо, кредит на кого-тооформляет
Kirill | CosmosDrops
я нашел, где это происходит епт, именно в modx
Kirill | CosmosDrops
https://github.com/modxcms/revolution/blob/2.x/core/model/modx/modx.class.php#L2502
Kirill | CosmosDrops
кто туда true последним аргументом втащил то.. =)
Kirill | CosmosDrops
хотя оно так и было, судя по всему. Но просто хз, именно этот момент локаль фигарит и вместо точки дает запятую. Однако, это не отвечает на вопрос, почему (float) работает с локалью. Это же, по сути, бред какой-то
Sergey_K
ну ьы можешь сделать
Sergey_K
setlocale(LC_ALL)
Kirill | CosmosDrops
setlocale(LC_NUMERIC, 'en_US');
Sergey_K
И посмотри, что будет