<?php
/**
 * define terminal symbol
 */
define'D_DIGIT');

/**
 * Lex a date string into digits, and non-digit tokens.
 * @param string raw date string
 * @return array tokens
 */
function tokenize_date_string$sdate ){
    
$tokens = array();
    for( 
$i 0$i strlen($sdate); $i++ ) {
        
$chr $sdate{$i};
        if( 
is_numeric($chr) ){
            
$tokens[] = array( D_DIGIT$chr );
        }
        else {
            
$tokens[] = $chr;
        }
    }
    return 
$tokens;
}



/**
 * Test it
 */
header('Content-Type: text/plain'); 
$tokens tokenize_date_string('1976-11-03 18:15:00');
var_dump$tokens );