当前位置: 首页 > 知识库问答 >
问题:

两个日期之间的天数/月/年

胡野
2023-03-14

我有两次约会。一个是以YYYYMMDD格式从其他应用程序的表中检索的,第二个日期是本地时间,我需要这两个日期之间的天数/月/年。

我试过了

  my $t = Time::Piece->strptime($expi, "%Y %m %d"); #First date
  my $today = Time::Piece->new; #Localtime

  my $diff = $t - $today; 
  print $diff;

但这给了我一些乱七八糟的数字。

变量$t=Fri Dec31 00:00:00 9999

变量$今天=Wed Feb19 14:40:55 2020

产出:25182094888

有什么想法吗?提前谢谢。

共有1个答案

宰父子安
2023-03-14

时间:Piece最多能让你以秒为单位计算出差异,但无法将其转换为月、日等。

use DateTime                   qw( );
use DateTime::Format::Strptime qw( );

my $format = DateTime::Format::Strptime->new(
   pattern   => '%Y%m%d',
   time_zone => 'floating',
   on_error  => 'croak',
);

my $today =
   DateTime
   ->now( time_zone => 'local' )
   ->set_time_zone('floating')
   ->truncate( to => 'day' );

my $dt = $format->parse_datetime('20200101');

my $diff = $today - $dt;

printf("%d years, %d months and %d days\n", $diff->in_units(qw( years months days )));

输出:

0 years, 1 months and 18 days
 类似资料:
  • 问题内容: 查看两个日期之间有多少整天的最短方法是什么?这就是我现在正在做的。 问题答案: 假设您确实有两个日期对象,则可以从另一个对象中减去一个,然后查询结果对象的天数: 它也适用于日期时间-我认为它会四舍五入到最近的日期:

  • 问题内容: 我想比较我的Android应用程序的两个日期,但是遇到了一个非常奇怪的问题。 例如: 如果我将日期设置为127天之前: 然后将其与当前日期(两天之间)进行比较 它将返回22,这根本不是预期的结果。 我做错什么了吗?还是班上有问题? 问题答案: 请参考此代码,这可能会对您有所帮助。

  • 我需要计算两个日期之间的天数差。 最后我需要知道某个日期是否已经到期。 但我想不出解决办法。 字段的类型为datetime 服务ts 检查许可证。ts

  • 问题内容: 它给出以下内容: 但是我想获得下个月的定义,该怎么办? 问题答案: 表达方式 给。我们期望这两个值都指向每月的最后几天。如果将1天添加到值中,我们将获得下个月的第一天, 会给我们1个月的预期时间。因此,让我们检查是否有一个月的最后两天,在这种情况下,我们要返回第二天的年龄间隔。在其他情况下,我们将返回原始值的年龄间隔: 一些例子:

  • 问题内容: 如何使用PHP查找两个日期之间的天数? 问题答案:

  • 我试图在我正在创建的C#应用程序中显示两个日期之间的年、月和日。(使用控制台进行测试) 我正在使用NodaTime来实现这一点,但在接下来的几个月里,我遇到了一些问题。 我已经阅读了这里的大部分问题和答案,但没有找到任何我可以从中受益的东西。 大多数时候函数工作但有时它不添加月如果天 我使用这个代码进行测试 (2017, 10, 16)和(2018, 1, 15)应该显示为3个月,但它们显示为2个