Задать вопрос
  • Кривая работа функции date php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Неделя начинается с понедельника и идентифицируется своим порядковым номером в году. Первой календарной неделей года считают первую неделю, содержащую первый четверг текущего года. Последней календарной неделей календарного года считают неделю, которая предшествует первой календарной неделе следующего года. ISO 8601.
    Соответственно, 2024-12-29 - воскресенье, последний день последней, 52-й недели года.
    2024-12-30 - понедельник, входящий в неделю, где четвергом является 2025-01-02, то есть в первую неделю 2025 года.
    Ответ написан
    6 комментариев
  • Почему PHP выполняет математические операции неправильно?

    Vamp
    @Vamp
    Потому что типом данных double нет возможности представить число 0.58. Поэтому компьютер берёт наиболее близкое к 0.58 число, которое double может выразить.

    Если вам нужны точные вычисления, то следует воспользоваться специальными функциями:

    $format = bcdiv("580000000", "1000000000", 2); // "0.58"
    
    var_dump(bcmul($format, "100")); // string(2) "58"


    Существует даже специальный сайт, рассказывающий о данной особенности математики чисел с плавающей запятой: https://0.30000000000000004.com/
    Ответ написан
    Комментировать
  • Почему PHP выполняет математические операции неправильно?

    Коротко - потому что IEEE 754

    Выполняет он математические операции правильно, но некоторые числа компьютер просто не способен представить со 100% точностью, тк для них нужно было бы бесконечное количество памяти.

    Точно также, как мы не можем записать все цифры числа 1/3 в десятичной системе, точно также и компьютер иногда не может записать все цифры в двоичной.

    Если ты работаешь с деньгами, то тогда используй то, что делают все банки - представляй суммы денег не как дробные числа, а как целые. Например место 1.5 рублей записывай как 150 копеек. Запятую добавишь при выводе человеку.
    btw тут в комментах пишут, что для денег тоже есть паттерн по-лучше конкретно для php.

    Если при делении у тебя получилось дробное количество копеек - округляй так, как велит закон.

    Если ты делаешь какие-то математические вычисления - возможно тебе нужны рациональные числа.
    Не знаю, что обычно для этого в пхп используют, но нагуглил https://github.com/webgriffe/rational
    https://github.com/markrogoyski/math-php

    Но в случае с целыми числами ты всё равно можешь упереться в ограничение на максимальное число, а в случае с рациональными числами ты получишь очень сильную просадку в производительности.

    Если тебе критически важна скорость, а точность - не так важна, то оставайся на IEEE754 и просто округляй то N значимых цифр (обычно больше 5 цифр мало кому нужно)
    Ответ написан
    13 комментариев
  • Может ли удаленный репозиторий быть сразу и рабочей директорией проекта?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Может. Вы со своим проектом можете работать в любом каталоге, в корне у вас основные файлы или вложены куда-то глубже - не имеет значения. Из вашего описания вообще не понятно что у вас не получается и что именно вы хотите сделать. Прочитайте ман сначала и просто следуйте по шагам инструкции как работать с гит: gitscm.org
    Для работы с репозиторием нескольким разработчикам вам надо настроить рабочий процесс - выдать разработчикам права, настроить организацию/проект в вашем гите, организовать документацию и прочее. Типовой рабочий процесс - github flow. Для работы приложения на сервере настраиваются CI/CD процессы для автоматизации доставки и развёртывания проекта на сервере. Это тоже настраивается отдельно. В разных сервисах этот процесс отличается в деталях, но основные приципы везде одинаковые. Вам просто следует открыть руководство пользователя и прочитать о том, как сделать то, что вы хотите сделать.
    Ответ написан
    Комментировать
  • Как составить SQLite Dockerfile?

    @dronmaxman
    VoIP Administrator
    FROM alpine
    RUN apk add --no-cache sqlite
    WORKDIR /db
    COPY . .
    RUN sqlite3 /db/example.db "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER);"
    CMD ["sqlite3", "/db/example.db"]
    Ответ написан
    Комментировать
  • Можно ли оживить флешку?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Брак или подделка - вернуть в магазин.
    Ответ написан
    Комментировать
  • Какие нормы регулируют температуру в серверной?

    Francyz
    @Francyz
    Photographer & SysAdmin
    ГОСТов на серверную "как таковую" не будет в плане температуры, там может размещаться разное оборудование у которого свои характеристики. Все что может быть - это общие ГОСТы к производственным помещениям и СанПиновские нормы, а так же рекомендуемый стандарт ISO, как надо делать.

    Более детально тут, там указаны ISO, нормы и т.д.

    Ответ на КонсультантеПлюс по нормам

    Изменения в Гаранте по СН 512-78
    Ответ написан
    1 комментарий
  • Подключение класса внутри класса: Правильно ли я делаю?

    @GeKskill
    В вашем случае все работает потому что используете include_once о чем говорит само название функции, она подключает ваш класс только единожды. Если не хотите использовать composer с автозагрузчиком классов, можете в своем main файле ( откуда стартует вообще приложение ) разместить все нужные include для классов.
    Ответ написан
    Комментировать
  • Подключение класса внутри класса: Правильно ли я делаю?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В целом, подключение классов через include/require уже устарело. Как правило, используется автозагрузка классов по стандарту PSR4, самостоятельная (spl_autoload_register) или через composer.
    Но если оставаться в легаси, то я бы вынес все подключения зависимостей через require_once в начало файлов.
    Ответ написан
    8 комментариев
  • Устанавливать ли в php таймзону пользователя?

    @alexalexes
    Проблем с временными зонами вообще не будет, если их представление выдавить максимально ближе к модели представления данных на интерфейсе пользователя.
    Нужно конвертировать в строку только непосредственно перед отрисовкой дату и время из UTC, и обратно загонять время в UTC, если забираете пользовательский ввод.
    Весь бек должен работать в одной временной зоне, а от пользователя знать, что он в такой-то временной зоне, только в контексте сессионной переменной, если это необходимо.
    Ответ написан
    Комментировать
  • Как вам калькулятор новичка?

    GavriKos
    @GavriKos
    Микропетпроджект - домашнее облако homeCloud
    P.S классы и названия переменных немного от балды написаны, прошу не придираться.

    Ну да, и такое будет на каждое замечание. Делайте так чтобы не надо было потом писать "не придираться".

    По факту:
    - нет обработки ошибок (от банальной деления на ноль, до ввода кривых данных
    - именование классов, переменных - так себе
    - есть какой то аргумент почему используются классы а не id?
    Ответ написан
    2 комментария
  • Как делаются отдельные страницы товаров на многостраничном сайте, где их много?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Можете посоветовать как к этому подойти? Может есть какие-то источники, которые я не смогла найти, где говорится, как это делать? Мне кажется, что это возможно, потому что Авито был до того как появился реакт, как-то же это сделали
    Почти любой современный сайт состоит из 2 основных частей: Фронтэнда и бэкэнда. Фронт - то что отображается в окне браузера, бэк - серверная часть, отвечающая за чтение, изменение и сохранение данных, которые можно вывести для клиента в любой удобной форме. По этому для реализации вашего проекта понадобятся знания не только верстки и js, нужно будет и разобраться с серверной частью, которая обычно состоит из движка на каком-то языке, подходящем для веб разработки (PHP, Pyton, Java, JS...) и базы данных, где будут храниться собственно данные о пользователях, объявлениях, просмотрах и т.д.

    Может есть какие-то источники, которые я не смогла найти, где говорится, как это делать?
    А искали?
    Ответ написан
    Комментировать
  • Код простого скрипта (windows) о повышении температуры процессора с отсылкой письма по smtp?

    @alexalexes
    AIDA64 -> Файл -> Настройки -> Мониторинг аппаратуры -> Тревога.
    Создаете триггер тревоги.
    Выбираете параметр, его предельное значение, и действие - отправка email.
    ----
    В настройках выбираете Email -> SMTP - настраиваете исходящий протокол отправки почты.
    Ответ написан
    4 комментария
  • Как можно остановить некоторые HDD в системе?

    hint000
    @hint000
    у админа три руки
    hdparm -S 12 /dev/sdb
    остановит диск /dev/sdb через 12*5=60 секунд неактивности

    https://askubuntu.com/questions/39760/how-can-i-co...
    https://unix.stackexchange.com/questions/112117/sh...
    https://serverfault.com/questions/29595/how-do-i-g...
    Ответ написан
    Комментировать
  • Как выглядит sudoers?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    Никакие, для нормальной работы права sudo служебному пользователю не нужны
    Ответ написан
    Комментировать
  • Как выглядит sudoers?

    postgres не нужно прописывать в sudoers, если ты не знаешь, что именно нужно запускать через sudo от имени этого пользователя
    Ответ написан
    Комментировать
  • Какой параметр работы видеокарты существует для проверки влияния райзера на производительность?

    В первую очередь смотреть, что не просела версия pcie и количество линий, пропускная способность.
    Остальное по идее не должно значительно влиять на производительность.
    Ответ написан
    6 комментариев
  • Нужна очень простая БД для учета лабораторного барахла. Что существует готового?

    @rPman
    Наведение порядка это не только техническая задача, т.е. не достаточно какой то програмки, в которой ты пишешь - вот эта фиговина леждит в ящике под номером 12,... с этим справится любой текстовый документ или excel файл! но и организация работы в физическом смысле с ними, а именно взял вещь, отметил в программе что ее взял такой то человек, положил вещь, отметил что такой то вернул вещь, и все участники должны контролировать какую вещь взял и куда вернул.

    Без контроля система разваливается, вещи будут складывать не куда надо, а куда попало, отмечать в программе забывать и т.п.

    Собственно все эти бюрократические 'взятие под роспись' и есть попытки контролировать этот процесс. Когда у действия есть ответственный - то действие будет сделано как надо с большей вероятностью

    p.s. отмечать кто взял куда положил можно и в экселе, только он не защищен от манипуляций, ведь его можно открыть и отредактировать, подставив другого человека.. вот тут и вылезают приложения, в которых вводится атворизация, разграничения прав доступа, логирование событи и ограничение функционала
    Ответ написан
    Комментировать