php 寻找相同日期,產生相同的日期作爲結帳日期PHP

$contract_start_date = strtotime('2016-01-01');

$contract_end_date = strtotime('2016-12-01');

$contract_start_date_last_date = date('t', $contract_start_date);

echo "contract last date of any start month: ".$contract_start_date_last_date."
";

$contract_end_date_last_date = date('t', $contract_end_date);

echo "contract last date of any end month: ".$contract_end_date_last_date."
";

$no_of_months = 1 + (date("Y", $contract_end_date) - date("Y", $contract_start_date)) * 12;

$no_of_months += date("m", $contract_end_date) - date("m", $contract_start_date);

$no_of_days = $contract_start_date_last_date - date("d", $contract_start_date);

echo $no_of_days."
";

echo $no_of_months."
";

$total_contract_value = 1000;

$no_of_bookings = 1;

$no_of_records = ($no_of_months/$no_of_bookings);

echo $no_of_records."
";

$contract_value = ($total_contract_value/$no_of_records);

echo $contract_value."
";

$initial_contract_value_for_first_month = ($contract_value/$no_of_days);

echo $initial_contract_value_for_first_month."
";

for($i = 0; $i < $no_of_records; $i++){

$proceed = false;

$calculated_records = intval($i * $no_of_bookings);

echo $calculated_records."
";

$contract_date = strtotime("+".$calculated_records." months", $contract_start_date);

echo date('Y-m-d', $contract_date)."&nbsp&nbsp&nbsp&nbsp&nbsp".$contract_value."
";

}

2016-01-01 83.333333333333

2016-02-01 83.333333333333

2016-03-01 83.333333333333

2016-04-01 83.333333333333

2016-05-01 83.333333333333

2016-06-01 83.333333333333

2016-07-01 83.333333333333

2016-08-01 83.333333333333

2016-09-01 83.333333333333

2016-10-01 83.333333333333

2016-11-01 83.333333333333

2016-12-01 83.333333333333

現在,我要的是如果合同起始日期是不是在第一次的任何一個月的開始,那麼我來計算同月的剩餘,並得到其他的結果一樣:

輸出我在尋找:

2016-01-15 83.333333333333

2016-02-01 83.333333333333

2016-03-01 83.333333333333

2016-04-01 83.333333333333

2016-05-01 83.333333333333

2016-06-01 83.333333333333

2016-07-01 83.333333333333

2016-08-01 83.333333333333

2016-09-01 83.333333333333

2016-10-01 83.333333333333

2016-11-01 83.333333333333

2016-12-01 83.333333333333

所以第一DAT e(2016-01-15)應計算15個月到最後一個日期的日期,其他日期應按照上面顯示的順序進行。請人給一個建議,我已經找到一種方法通過執行以下代碼插入到第15天值:

$one_month_contract_value = ($contract_value/$contract_start_date_last_date);

echo $one_month_contract_value."
";

$initial_contract_value_for_first_month = ($one_month_contract_value*$no_of_days);

echo $initial_contract_value_for_first_month."
";

這給了我第一個月的合同價值,我可以直接插入到這個數據庫中。現在我怎麼才能繼續計算第一次約會的其他月份。

這是輸出現在我得到:

2016-01-15 43.010752688172

2016-01-01 83.333333333333

2016-02-01 83.333333333333

2016-03-01 83.333333333333

2016-04-01 83.333333333333

2016-05-01 83.333333333333

2016-06-01 83.333333333333

2016-07-01 83.333333333333

2016-08-01 83.333333333333

2016-09-01 83.333333333333

2016-10-01 83.333333333333

2016-11-01 83.333333333333

,總價值超過合同金額較小。

+0

我建議在foreach裏動態地計算$ no_of_days。這段代碼太複雜了,無法提供示例。我建議你在功能上分開它,它肯定會幫助你找到解決方案。 –

+0

我寫了開始日期和開始日期的月份之間的數據之間的數據的幾行,請檢查我的問題 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值