<?php
function find_date( $string ) {
//Define month name:
$month_names = array(
"january",
"february",
"march",
"april",
"may",
"june",
"july",
"august",
"september",
"october",
"november",
"december"
);
$month_name_shorts = array(
"jan"
);
$month_number=$month=$matches_year=$year=$matches_month_number=$matches_month_word=$matches_day_number="";
//Match dates: 01/01/2012 or 30-12-11 or 1 2 1985
preg_match( '/([0-9]?[0-9])[\.\-\/ ]?([0-1]?[0-9])[\.\-\/ ]?([0-9]{2,4})/', $string, $matches );
if ( $matches ) {
if ( $matches[1] )
$day = $matches[1];
if ( $matches[2] )
$month = $matches[2];
if ( $matches[3] )
$year = $matches[3];
}
//Match month name:
preg_match( '/(' . implode( '|', $month_names ) . ')/i', $string, $matches_month_word );
if ( $matches_month_word ) {
echo strtolower( $matches_month_word[1]);exit;
if ( $matches_month_word[1] )
$month = array_search( strtolower( $matches_month_word[1] ), $month_names ) + 1;
}
//Match 5th 1st day:
preg_match( '/([0-9]?[0-9])(st|nd|th)/', $string, $matches_day );
if ( $matches_day ) {
if ( $matches_day[1] )
$day = $matches_day[1];
}
//Match Year if not already setted:
if ( empty( $year ) ) {
preg_match( '/[0-9]{2}/', $string, $matches_year );
if ( $matches_year[0] )
$year = $matches_year[0];
}
if ( ! empty ( $day ) && ! empty ( $month ) && empty( $year ) ) {
preg_match( '/[0-9]{2}/', $string, $matches_year );
if ( $matches_year[0] )
$year = $matches_year[0];
}
$day = '01';
//Leading 0
if ( 1 == strlen( $day ) )
$day = '0' . $day;
//Leading 0
if ( 1 == strlen( $month ) )
$month = '0' . $month;
//Check year:
if ( 2 == strlen( $year ) && $year > 20 )
$year = '19' . $year;
else if ( 2 == strlen( $year ) && $year < 20 )
$year = '20' . $year;
$date = array(
'year' => $year,
'month' => $month,
'day' => $day
);
//Return false if nothing found:
if ( empty( $year ) && empty( $month ) && empty( $day ) )
return false;
else
return date('Y-m-d',strtotime($date['year'].'-'.$date['month'].'-01'));
}
echo find_date('Fund Factsheet Syariah - Jan 1914');
- Output for git.master, git.master_jit, rfc.property-hooks
- 2014-09-01
This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.
Active branches
Archived branches
Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page
preferences:
53.23 ms | 401 KiB | 8 Q