在 Phing 中获取时间和日期值
Phing中的tstamp任务可用于生成可在当前项目中的任何地方使用的时间戳。tstamp的默认行为是创建属性DSTAMP、TSTAMP和TODAY,其中包含时间和日期值。您需要做的就是在您的项目中的某处包含tstampXML标记。
DSTAMP、TSTAMP和TODAY属性使用PHPstrftime()函数作为格式化时间的基础。下表显示了每个属性的值。
一旦您添加了tstampXML标记,您就可以以任何您想要的方式访问这些属性。下面的目标定义了tstamp标签,然后打印出三个属性的值。
DSTAMP = ${DSTAMP} TSTAMP = ${TSTAMP} TODAY = ${TODAY}
运行时会打印出以下内容:
build > printtime: [echo] DSTAMP = 20110610 [echo] TSTAMP = 1125 [echo] TODAY = June 10 2011
如果您想为这些属性添加前缀,那么您可以使用tstamp属性的prefix属性来完成。您在此处添加的任何值都需要访问任何tstamp属性。例如,如果前缀设置为“mytime”,则需要通过“mytime.DSTAMP”访问DSTAMP属性。以下是以这种方式访问所有三个参数的示例。
DSTAMP = ${mytime.DSTAMP} TSTAMP = ${mytime.TSTAMP} TODAY = ${mytime.TODAY}
创建tstamp元素时,还可以使用自定义格式创建自定义tstamp属性。为此,您需要创建一个带有子格式元素的tstamp元素。property属性定义要设置的属性的名称,pattern属性设置时间戳的模式。这种格式的模式与strftime()手册页上的详细说明相同。下面将DATE参数设置为%c,这是基于本地的首选日期和时间戳。
DATE = ${DATE}
这会产生以下输出。
build > format: [echo] DATE = Fri Jun 10 21:53:06 2011
格式元素的属性名称也可以通过使用tstamp元素上的前缀属性来更改。
也可以使用格式元素覆盖默认的tstamp属性名称之一。重要的是要注意,只有在尚未使用tstamp元素时覆盖才会起作用。以下示例显示了覆盖tstamp属性TSTAMP的失败,因为tstamp元素已被使用。如果删除了第一个tstamp元素,此示例将产生正确的输出。
TSTAMP = ${TSTAMP}
您还可以设置格式化时间的区域设置,以便将其转换为特定于区域的格式。语言环境字符串与可以传递给PHPsetlocale()函数的字符串相同。此功能在很大程度上取决于服务器和平台配置,但如果无法识别区域设置字符串,它将始终默认返回系统语言。以下示例将语言环境设置为西班牙语言(在西班牙境内),并将日期格式设置为包含一些日和月名称,以完全显示不同的语言。
SpanishDate = ${SpanishDate}
该函数的输出如下:
build > formatspanish: [echo] SpanishDate = viernes 10 junio (vie 10 jun 2011 20:27:23 BST)
我应该注意到上述设置“spanish_Spain”来自Windows环境。对于Ubuntulinux环境,我必须安装适当的语言包,然后将上面的语言环境字符串更改为以下内容: