Symfony 根据日期计算天数

2023-12-20

我正在尝试根据日期计算 1-21 天的价格。

家庭控制器

$Sql = ' SELECT DISTINCT 
            a.property_id, a.date, a.minimum_stay,
            a.maximum_stay,a.quantity,
            a.arrival_allowed,a.departure_allowed,
            p.duration, p.persons, p.amount, 
            p.extra_person_price, p.minimum_stay AS price_minimum_stay, 
            p.maximum_stay AS price_maximum_stay, p.weekdays, 
            p.period_till, p.period_from,
            datediff(p.period_till, p.period_from) AS number_of_days
            FROM availabilities AS a 
            JOIN prices AS p 
            ON a.property_id=p.property_id 
            WHERE a.minimum_stay >0 
            AND a.maximum_stay < 22 
            AND a.date >= p.period_from 
            AND a.date <= p.period_till
     ';
        $Stm = $this->getEntityManager()->getConnection()->prepare($Sql);
        $Stm->execute();
        return $Stm->fetchAll(PDOConnection::FETCH_ASSOC);




    public function CalculatePrice($persons, $extra_person_price, $date, $amount, $duration, $period_till, $period_from)
    {
        //loop through persons
        foreach ($persons as $person) {
           //calculate price for persons
            if ($person > 1) {
                $amount += $person * $extra_person_price;
            }
            //array to link parameters with database fields
            $tmp = array(
                "date" => $date,
                "person" => $person,
                "price_person" => number_format($amount / 100, 2, '.', ',')
            );
            //loop through $tmp an add value from 2 to 21 to day an add this to $tmp array with calculated value
            //$x=$number_of_days;
            //$days = (strtotime($period_till) - strtotime($period_from)) / (60 * 60 * 24);

    for ($x = 1; $x <= 21; ++$x) {
                if ($x >1) {
                    $tmp["day$x"] = $tmp["day".($x-1)] + number_format($amount  / 100, 2, '.', ',');
                    //number_format(($amount * $x) / 100, 2, '.', ',');
                } else {
                    $tmp["day$x"] = "0.00";
                }

            $price_per_person[] = $tmp;
        }

        return $price_per_person;
    }

我也在计算人数的价格,但这部分很好。现在我已经做了一个 for 循环并存储了从 1 到 21 的数字天数请参阅我的第二个 for 循环function CalculatePrice。但这部分不好,我需要根据日期来计算。例如: 大部分时间的常规价格为 123 欧元。假设 9 月 3 日每天费用为 250 欧元,9 月 7 日每天费用为 300 欧元。假设一个人想停留 5 天,他于 9 月 3 日抵达,那么计算结果为:250 + 123 + 123 + 123 + 300 = 919 欧元。 但我需要这个基于日期。我尝试过 period_from 和 period_til 但到目前为止没有运气。有人可以举个例子或一些有用的提示,我如何在 for 循环中做到这一点,就像我的第二个 for 循环一样。


我根据 T. Abdelmalek 给我的理论解决了这个问题。我创建了一个数组并存储了每个日期的日期和价格并进行了遍历。答案已被删除,我不知道如何标记为已解决

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony 根据日期计算天数 的相关文章

  • 简单的 PHP 回显代码不起作用

    这是我的 html 和 php 脚本 h1 Bob s Auto Parts h1 table width 100 tr tr table 为什么这个输出会出现一个 gt 我希望它是 这有效 仅有的 这是输出 鲍勃的汽车零件 鲍勃
  • php源代码到PO文件生成器

    我必须将我的所有回显 打印字符串转换为PHP源代码代码文件到PO file 为了语言翻译 有批次吗对流器可用于相同的 我如何做到这一点 make gettext在您的服务器上运行 setup a 翻译适配器 例如带有 gettext 适配器
  • mysql 如何将 varchar(10) 转换为 TIMESTAMP?

    我已将所有日期存储到数据库中varchar 10 现在我想将它们转换为 TIMESTAMP 当我运行sql时 ALTER TABLE demo3 CHANGE date date TIMESTAMP NOT NULL 它提醒 1292 In
  • get url 重定向时 File_get_contents() 不起作用

    我正在使用的功能是 function http post url data data url http build query data data len strlen data url date default timezone set
  • php中的条件格式化html表与时间戳比较

    echo table style width 100 tr echo td Order td echo td Destination td echo td Location td echo td Status td echo td Time
  • MySQL NOT IN 来自同一个表中的另一列

    我想运行 mysql 查询来选择表中的所有行films其中的值title该列不存在于另一列的所有值中的任何位置 collection 这是我的表格的简化版本 其中包含内容 mysql gt select from films id titl
  • SQL Server 2005 是否有与 MySql 的 ENUM 数据类型等效的数据类型?

    我正在开发一个项目 我想在表中存储一些容易枚举的信息 MySql 的枚举数据类型正是我想要的 http dev mysql com doc refman 5 0 en enum html http dev mysql com doc ref
  • 如何关闭未关闭的 HTML 标签?

    每当我们从数据库或类似来源获取一些经过编辑的用户输入内容时 我们可能会检索仅包含开始标记但不包含结束标记的部分 这可能会妨碍网站当前的布局 有客户端或服务器端的方法来解决这个问题吗 找到了一个很好的答案 使用 PHP 5 并使用 DOMDo
  • 编辑 HTACCESS 文件以防止直接访问特定文件夹中的特定文件

    我试图阻止直接访问子文件夹中的特定文件 我意识到这个论坛上有很多描述类似问题的主题 但是 我的似乎有点尴尬 由于我已经存在 HTACCESS 文件 这是文件的文件路径 www example com PRINCIPAL PROJECTS m
  • 如何使用 MySQL 选择有特定值的 2 个连续行?

    我正在构建一个系统 该系统应该显示学生何时连续缺席两天 例如 此表包含缺勤情况 day id missed 2016 10 6 1 true 2016 10 6 2 true 2016 10 6 3 false 2016 10 7 1 tr
  • 如何将我的 init 函数中的代码集中到所有控制器中?

    public function init this gt view gt user Zend Auth getInstance gt getIdentity this gt view gt siteName Zend Registry ge
  • 访问sendBeacon发送的数据

    文档表明sendBeacon通过发送其数据HTTP POST request 但在 PHP 中 POST变量似乎是一个空数组 这是我的 JavaScript 代码 navigator sendBeacon beacon log php My
  • 检查 PHP 中的字符串长度

    我有一个长度为 141 个字符的字符串 使用下面的代码我有一个if如果字符串大于或小于 140 则语句返回一条消息 libxml use internal errors TRUE dom new DOMDocument dom gt loa
  • 从表中选择行,其中另一个表中具有相同 id 的行在另一列中具有特定值

    在 MySQL 中 如果我们有两个表 comments key value 1 foo 2 bar 3 foobar 4 barfoo and meta comment key value 1 1 2 1 3 2 4 1 我想得到来自以下人
  • 在 WooCommerce 中添加到购物车之前清空购物车

    我正在使用 WP 作业管理器和 Woo Subscriptions Now 最初 我选择了一个套餐 Woo Subscription 然后我添加了所有细节 但没有提交 回到网站 所以要再次购买 我需要选择一个套餐 于是我选择了套餐并填写了详
  • Facebook PHP SDK - 如何获取访问令牌?

    我正在尝试从我的应用程序在用户的 Facebook 墙上发帖 用户授予应用程序在他的墙上发布的权限 并且我在数据库中有用户ID 我需要自动发送帖子 而无需用户再次登录 我的代码是 try require once dirname FILE
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • 从所有会话中注销

    我有一个注销选项 这是我的代码 session start session destroy setcookie key time 60 60 24 setcookie username time 60 60 24 我想添加另一个选项来注销所
  • 我可以在 PHP 会话变量中安全地存储用户名和密码吗?

    我想在 REST api 之上制作一个轻量级的 web 应用程序 用户只需进行一次身份验证 从那时起 所有针对 web api 的请求都希望通过以某种方式保持用户名和密码有效来完成 我已经做了一个工作原型我在哪里将用户名和密码存储在会话变量
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的

随机推荐