IXR_Date
云策文档标注
概述
IXR_Date 是 WordPress 中用于处理 XML-RPC 日期格式的类,支持 ISO 8601 格式和 Unix 时间戳的转换。它提供了构造函数和方法来解析和生成日期数据。
关键要点
- IXR_Date 类用于处理 XML-RPC 相关的日期操作,包含年、月、日、时、分、秒和时区属性。
- 构造函数 __construct 和 IXR_Date 支持传入 PHP 时间戳或 ISO 字符串,自动调用 parseTimestamp 或 parseIso 方法解析。
- 提供 getIso、getXml 和 getTimestamp 方法,分别用于获取 ISO 格式、XML 格式和 Unix 时间戳。
- parseTimestamp 和 parseIso 方法用于内部解析,将输入转换为类属性。
代码示例
class IXR_Date {
var $year;
var $month;
var $day;
var $hour;
var $minute;
var $second;
var $timezone;
function __construct( $time ) {
if (is_numeric($time)) {
$this->parseTimestamp($time);
} else {
$this->parseIso($time);
}
}
public function IXR_Date( $time ) {
self::__construct( $time );
}
function parseTimestamp($timestamp) {
$this->year = gmdate('Y', $timestamp);
$this->month = gmdate('m', $timestamp);
$this->day = gmdate('d', $timestamp);
$this->hour = gmdate('H', $timestamp);
$this->minute = gmdate('i', $timestamp);
$this->second = gmdate('s', $timestamp);
$this->timezone = '';
}
function parseIso($iso) {
$this->year = substr($iso, 0, 4);
$this->month = substr($iso, 4, 2);
$this->day = substr($iso, 6, 2);
$this->hour = substr($iso, 9, 2);
$this->minute = substr($iso, 12, 2);
$this->second = substr($iso, 15, 2);
$this->timezone = substr($iso, 17);
}
function getIso() {
return $this->year.$this->month.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second.$this->timezone;
}
function getXml() {
return '<dateTime.iso8601>'.$this->getIso().'</dateTime.iso8601>';
}
function getTimestamp() {
return mktime($this->hour, $this->minute, $this->second, $this->month, $this->day, $this->year);
}
}
原文内容
Methods
| Name | Description |
|---|---|
| IXR_Date::__construct | PHP5 constructor. |
| IXR_Date::getIso | – |
| IXR_Date::getTimestamp | – |
| IXR_Date::getXml | – |
| IXR_Date::IXR_Date | PHP4 constructor. |
| IXR_Date::parseIso | – |
| IXR_Date::parseTimestamp | – |
Source
class IXR_Date {
var $year;
var $month;
var $day;
var $hour;
var $minute;
var $second;
var $timezone;
/**
* PHP5 constructor.
*/
function __construct( $time )
{
// $time can be a PHP timestamp or an ISO one
if (is_numeric($time)) {
$this->parseTimestamp($time);
} else {
$this->parseIso($time);
}
}
/**
* PHP4 constructor.
*/
public function IXR_Date( $time ) {
self::__construct( $time );
}
function parseTimestamp($timestamp)
{
$this->year = gmdate('Y', $timestamp);
$this->month = gmdate('m', $timestamp);
$this->day = gmdate('d', $timestamp);
$this->hour = gmdate('H', $timestamp);
$this->minute = gmdate('i', $timestamp);
$this->second = gmdate('s', $timestamp);
$this->timezone = '';
}
function parseIso($iso)
{
$this->year = substr($iso, 0, 4);
$this->month = substr($iso, 4, 2);
$this->day = substr($iso, 6, 2);
$this->hour = substr($iso, 9, 2);
$this->minute = substr($iso, 12, 2);
$this->second = substr($iso, 15, 2);
$this->timezone = substr($iso, 17);
}
function getIso()
{
return $this->year.$this->month.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second.$this->timezone;
}
function getXml()
{
return '<dateTime.iso8601>'.$this->getIso().'</datetime.iso8601>';
}
function getTimestamp()
{
return mktime($this->hour, $this->minute, $this->second, $this->month, $this->day, $this->year);
}
}
Changelog
| Version | Description |
|---|---|
| 1.5.0 | Introduced. |