parse_w3cdtf( $date_str )
Contents
Description Description
Source Source
File: wp-includes/rss.php
844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 | 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; } } |
Expand full source code Collapse full source code View on Trac