Php 获取基于360天的两个日期之间的差异

Php 获取基于360天的两个日期之间的差异,php,date,diff,Php,Date,Diff,如何根据360天计算两个日期之间的差异 360天: 我想得到日、年、月的差值 例如: $fechaDT1 = new DateTime($fechauno); $fechaDT2 = new DateTime($fechados); //$initialdays = 30 - (float)$fechaDT1->format('d'); $years = $fechaDT1->format('Y') - $fechaDT2->format('Y'); $months =

如何根据360天计算两个日期之间的差异

360天:

我想得到日、年、月的差值

例如:

$fechaDT1 = new DateTime($fechauno);
$fechaDT2 = new DateTime($fechados);

//$initialdays = 30 - (float)$fechaDT1->format('d');

$years = $fechaDT1->format('Y') -  $fechaDT2->format('Y');
$months = $fechaDT1->format('m') - $fechaDT2->format('m');
$days = (-$fechaDT1->format('d') + $fechaDT2->format('d'));
$totalDay = $months*30 +$days;
解决方案:

    $startDate = new DateTime($startDate);
    $endDate = new DateTime($endDate);
    $initialDays = 30 - $startDate->format('d');

    $year  = ($endDate->format('Y') - $startDate->format('Y')) * 360;
    $meses = ($endDate->format('m') - $startDate->format('m')) * 30;
    $dias  = ($endDate->format('d') - $startDate->format('d'));
    $totalDays = $year+$meses+$dias;

    $years = number_format($totalDias/360);
    $diff = $years - ($endDate->diff($startDate)->y);
    $daysR = $totalDays - (($years-$diff)*360);


    $result = array("days" => $daysR, "years" => ($years-$diff), "initial days" => $initialDays);

    return $result;
<?php
$date1 = new DateTime('2013-03-24');
$date2 = new DateTime('2014-03-24');
$diff = $date1->diff($date2);

// Do whatever you want
echo $diff->days;
var_dump($diff);

最佳解决方案:

<?php
$date1 = new DateTime('2013-03-24');
$date2 = new DateTime('2014-03-24');
$diff = $date1->diff($date2);

// Do whatever you want
echo $diff->days;
var_dump($diff);
月份:根据wiki页面和以下US/NASD方法(30US/360)

$months = ($diff->days - ($diff->days % 30)) / 30; //+some remaining days if any

最佳解决方案:

<?php
$date1 = new DateTime('2013-03-24');
$date2 = new DateTime('2014-03-24');
$diff = $date1->diff($date2);

// Do whatever you want
echo $diff->days;
var_dump($diff);
月份:根据wiki页面和以下US/NASD方法(30US/360)

$months = ($diff->days - ($diff->days % 30)) / 30; //+some remaining days if any

最佳解决方案:

<?php
$date1 = new DateTime('2013-03-24');
$date2 = new DateTime('2014-03-24');
$diff = $date1->diff($date2);

// Do whatever you want
echo $diff->days;
var_dump($diff);
月份:根据wiki页面和以下US/NASD方法(30US/360)

$months = ($diff->days - ($diff->days % 30)) / 30; //+some remaining days if any

最佳解决方案:

<?php
$date1 = new DateTime('2013-03-24');
$date2 = new DateTime('2014-03-24');
$diff = $date1->diff($date2);

// Do whatever you want
echo $diff->days;
var_dump($diff);
月份:根据wiki页面和以下US/NASD方法(30US/360)

$months = ($diff->days - ($diff->days % 30)) / 30; //+some remaining days if any

我也不熟悉Python,但我认为这会起作用:

import datetime as dt
import calendar
根据30/360日历计算天数差异 格式 日期1:日期格式(2020-01-01) 日期2:日期格式(2020-01-01)


我也不熟悉Python,但我认为这会起作用:

import datetime as dt
import calendar
根据30/360日历计算天数差异 格式 日期1:日期格式(2020-01-01) 日期2:日期格式(2020-01-01)


我也不熟悉Python,但我认为这会起作用:

import datetime as dt
import calendar
根据30/360日历计算天数差异 格式 日期1:日期格式(2020-01-01) 日期2:日期格式(2020-01-01)


我也不熟悉Python,但我认为这会起作用:

import datetime as dt
import calendar
根据30/360日历计算天数差异 格式 日期1:日期格式(2020-01-01) 日期2:日期格式(2020-01-01)



你必须解释360天是什么意思,添加一些例子,否则这个问题很可能会被删除。任何超过周数的问题都是有问题的,因为月的天数不同,闰年有366天。另外,正如你可能有兴趣知道的,非闰年有365天。你有什么问题吗?我编辑了这篇文章,问题解决了,谢谢你解释一下360天是什么意思,添加一些例子,否则这个问题很可能会被删除。任何超过周数的问题都是有问题的,因为月份的天数不同,闰年有366天。另外,正如你可能有兴趣知道的,非闰年有365天。你有什么问题吗?我编辑了这篇文章,问题解决了,谢谢你解释一下360天是什么意思,添加一些例子,否则这个问题很可能会被删除。任何超过周数的问题都是有问题的,因为月份的天数不同,闰年有366天。另外,正如你可能有兴趣知道的,非闰年有365天。你有什么问题吗?我编辑了这篇文章,问题解决了,谢谢你解释一下360天是什么意思,添加一些例子,否则这个问题很可能会被删除。任何超过周数的问题都是有问题的,因为月份的天数不同,闰年有366天。另外,正如你可能有兴趣知道的,非闰年有365天。你有什么问题吗?我编辑了这篇文章,这个问题已经解决了。基于360年不是365或366看,这很抱歉,添加了相关的更改,但正如其他评论所说,这只是一个解决办法,没有真正的解决办法。您可能可以创建自己的DateTime类,但我不确定是否值得这样做。我不太明白您的示例。你为什么做彩车?所有这些值都是整数。但是你是对的,天数是根据365天/年的标准计算的,所以不是这样。但你的例子可能就是这样。只是不明白为什么要将整数值强制转换为浮点值。好吧,没问题,我删除浮点值是为了修复发生的问题,但它们不再需要。是基于360年而不是365或366看起来很抱歉,在帖子中添加了相关更改,但正如其他评论者所说,这只是一个解决方法,没有真正的解决方案。您可能可以创建自己的DateTime类,但我不确定是否值得这样做。我不太明白您的示例。你为什么做彩车?所有这些值都是整数。但是你是对的,天数是根据365天/年的标准计算的,所以不是这样。但你的例子可能就是这样。只是不明白为什么要将整数值强制转换为浮点值。好吧,没问题,我删除浮点值是为了修复发生的问题,但它们不再需要。是基于360年而不是365或366看起来很抱歉,在帖子中添加了相关更改,但正如其他评论者所说,这只是一个解决方法,没有真正的解决方案。您可能可以创建自己的DateTime类,但我不确定是否值得这样做。我不太明白您的示例。你为什么做彩车?所有这些值都是整数。但是你是对的,天数是根据365天/年的标准计算的,所以不是这样。但你的例子可能就是这样。只是不明白为什么要将整数值强制转换为浮点值。好吧,没问题,我删除浮点值是为了修复发生的问题,但它们不再需要。是基于360年而不是365或366看起来很抱歉,在帖子中添加了相关更改,但正如其他评论者所说,这只是一个解决方法,没有真正的解决方案。您可能可以创建自己的DateTime类,但我不确定是否值得这样做。我不太明白您的示例。你为什么做彩车?所有这些值都是整数。但是你是对的,天数是根据365天/年的标准计算的,所以不是这样。但你的例子可能就是这样。只是不明白为什么要将整数值强制转换为float。好吧,没问题,我删除了float值,是为了修复发生的问题,但它们不再需要了。