parse_w3cdtf() –

You appear to be a bot. Output may be restricted

Description

Usage

parse_w3cdtf( $date_str );

Parameters

$date_str
( mixed ) required

Returns

void

Source

File name: wordpress/wp-includes/rss.php
Lines:

1 to 41 of 41
function parse_w3cdtf ( $date_str ) {

  # regex to match W3C date/time formats
  $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;
  }
}
 

 View on GitHub View on Trac