'P'代表DateInterval格式是什么意思?

时间:2012-02-08 06:29:49

标签: php php-5.3

请考虑以下php manual for DateTime

引用的示例
<?php
  $date = new DateTime('2000-01-20');
  $date->sub(new DateInterval('P10D'));
  echo $date->format('Y-m-d') . "\n";
?>

'D'是几天,'P'在格式中代表什么?

3 个答案:

答案 0 :(得分:100)

来自the manual

  

间隔规范。

     

格式以字母P开头,表示“期间”。每个持续时间段由整数值表示,后跟句点指示符。如果持续时间包含时间元素,则说明书的该部分前面带有字母T.

答案 1 :(得分:18)

&#39; P&#39;代表期间。 见http://php.net/manual/en/dateinterval.construct.php

答案 2 :(得分:9)

我认为可以更详细地回答。首先,DateInterval构造函数方法使用一个名为$interval_spec的参数,它是字符串。

DateInterval::__construct ( string $interval_spec )

此参数的规格如下所述:

格式以字母P开头,为句点。每个持续时间 用整数值表示,后跟一个句号。如果 持续时间包含时间元素,即规范的该部分 字母T之前。

参数中使用了一些句号:

  • Y
  • M 个月
  • D
  • W 持续。这些会转换为天,因此不能与D结合使用。
  • H 小时
  • M 持续分钟
  • S 持续

让我们看一些使用“期间指示符”的示例:

  • 两天就是P2D。
  • PT2S是两秒钟。
  • P6YT5M是6年5分钟。

有一个需要按照文档描述进行维护的订单:

单位类型必须从左侧的最大比例单位输入 到右边的最小刻度单位。所以数月前 前几天,几分钟前,等等。一年零四年 天必须表示为P1Y4D,而不是P4D1Y。

规范也可以表示为日期时间

  • 一年零两个月四天是P0001-02-04T00:00:00

但是这种格式的值不能超过给定时间段的翻转点(例如25小时无效)。