parse_w3cdtf

函数
parse_w3cdtf ( $date_str )

parse_w3cdtf: 这个函数将W3C日期和时间格式字符串转换为Unix时间戳。它需要一个参数:$date(字符串)表示W3C日期和时间格式。

function parse_w3cdtf ( $date_str ) {

	# regex to match wc3dtf
	$pat = "/(d{4})-(d{2})-(d{2})T(d{2}):(d{2})(:(d{2}))?(?:([-+])(d{2}):?(d{2})|(Z))?/";

	if ( preg_match( $pat, $date_str, $match ) ) {
		list( $year, $month, $day, $hours, $minutes, $seconds) =
			array( $match[1], $match[2], $match[3], $match[4], $match[5], $match[7]);

		# calc epoch for current date assuming GMT
		$epoch = gmmktime( $hours, $minutes, $seconds, $month, $day, $year);

		$offset = 0;
		if ( $match[11] == 'Z' ) {
			# zulu time, aka GMT
		}
		else {
			list( $tz_mod, $tz_hour, $tz_min ) =
				array( $match[8], $match[9], $match[10]);

			# zero out the variables
			if ( ! $tz_hour ) { $tz_hour = 0; }
			if ( ! $tz_min ) { $tz_min = 0; }

			$offset_secs = (($tz_hour*60)+$tz_min)*60;

			# is timezone ahead of GMT?  then subtract offset
			#
			if ( $tz_mod == '+' ) {
				$offset_secs = $offset_secs * -1;
			}

			$offset = $offset_secs;
		}
		$epoch = $epoch + $offset;
		return $epoch;
	}
	else {
		return -1;
	}
}

常见问题

FAQs
查看更多 >