【问题标题】:Emulate PHP date calculation using Joda Time使用 Joda Time 模拟 PHP 日期计算
【发布时间】:2013-04-16 22:14:54
【问题描述】:

我正在使用 Joda Time library 从 LocalDate 中减去一个月:

LocalDate date = new LocalDate(2013, 3, 31);
System.out.println(date.minusMonths(1));

结果是 2013 年 2 月 28 日,这是我直观预期的结果,也记录在 API

如果减去月份使日期无效,则将其调整为最后一个有效 一个月中的某一天。

但是,在我当前的项目中,我需要与一些现有的 PHP 代码兼容,如下所示:

$date = new \DateTime('2013-03-31');
echo $date->sub(new \DateInterval('P1M'))->format('Y-m-d');

这里的结果是 2013-03-03,即“滚动”到下个月。

如何使用 Joda Time 实现相同的行为?

【问题讨论】:

    标签: java php jodatime


    【解决方案1】:

    PHP 似乎减去了它在上个月找到的天数。这应该与 Joda 一起完成:

    LocalDate date = new LocalDate(2013, 3, 31);
    int numberOfDays = date.minusMonths(1).dayOfMonth().getMaximumValue();
    System.out.println(date.minusDays(numberOfDays));
    

    【讨论】:

      猜你喜欢
      • 2014-03-07
      • 2014-04-08
      • 1970-01-01
      • 2011-06-26
      • 2011-10-14
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 2014-10-01
      相关资源
      最近更新 更多