日期与时间扩展类 - DateTime / DateTimeInterface / DateTimeZone / DateInterval

本文写于2016-09-16 22:56;

date_default_timezone_set('PRC');

$dateTime = new DateTime();

p($dateTime->format('Y-m-d H:i:s')); // 当前时间

// DateTime::add

$dateInterval = new DateInterval('P1YT3H'); // 给时间对象增加1年3小时

$dateTime->add($dateInterval);

p($dateTime->format('Y-m-d H:i:s')); // 格式化时间,参数与 date() 接受的参数一致

// DateTime::sub

$dateTime->sub($dateInterval); // 给时间对象减少1年3小时

p($dateTime->format('Y-m-d H:i:s'));

// DateTime::modify

$dateTime->modify('+1 day'); // 修改时间对象,参数与 strtotime() 接受的参数一致

p($dateTime->format('Y-m-d H:i:s'));

// DateTime::setDate

$dateTime->setDate('2016','9','16'); // 三个参数分别表示 "年" "月" "日"

// DateTime::setTime

$dateTime->setDate('0','0','0'); // 三个参数分别表示 "时" "分" "秒"

// DateTime::setTimeStamp

$dateTime->setTimeStamp(time());

// DateTime::setTimeZone

$dateTime->setTimeZone(new DateTimeZone('PRC')); // 设置时区

// DateTimeInterface::diff

$dateTime2 = new DateTime();

$dateInterval = $dateTime->diff($dateTime2); // 求两个时间对象之差,返回DateInterval对象

echo $dateInterval->format('相差 %Y 年 %M 月 %D 天, %H 小时 %I 分钟 %S 秒 ');

// DateTimeInterface::getOffect

echo $dateTime->getOffset(); // 获取当前时间对象对UTC时间的偏移 , 参考date('Z');

// DateTimeInterface::getTimeStamp

echo $DateTime::getTimeStamp();

// DateTImeInterface::getTimeZone

echo $dateTime->getTimeZone();

// DateInterval::__construct

$dateInterval = new DateInterval('P1Y');

/*

参数是一个特殊格式的字符串 : P开头,表示'period'

Y表示年;M表示月;D表示天;W表示星期;H表示小时;M表示分;S表示秒, 在字母前面加上数字即可 , 注意顺序不能调换

比如 'P1Y2M3D' 表示1年2个月3天, 'P3D1Y2M' 则错误

如果要表示时间,要加上"T"

比如 'P1Y2M3DT1H1M1S', 当有H,M,S要表示时, 要在Y,M,D后面,H,M,S前面加上T

*/

// DateInterval::format

$dateInterval->format('%y %m %d $h %i $s'); // 大写表示结果补零,比如 01

你可能感兴趣的:(日期与时间扩展类 - DateTime / DateTimeInterface / DateTimeZone / DateInterval)