openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

component-date.php (1605B)


      1 <?php
      2 
      3 use cms\action\Action;
      4 use language\Messages;
      5 use util\Cookie;
      6 use template_engine\Output;
      7 
      8 function component_date($time )
      9 {
     10 	if	( $time==0)
     11 		echo Output::lang(Messages::UNKNOWN );
     12 	else
     13 	{
     14 		echo '<span class="or-table-sort-value">'.str_pad($time, 20, "0", STR_PAD_LEFT).'</span>'; // For sorting a table.
     15 
     16 		echo '<time title="';
     17 		$dl = Output::lang(Messages::DATE_FORMAT_LONG);
     18 		$dl = str_replace('{weekday}',addcslashes(Output::lang('DATE_WEEKDAY'.strval(date('w',$time))),'A..z'),$dl);
     19 		$dl = str_replace('{month}'  ,addcslashes(Output::lang('DATE_MONTH'  .strval(date('n',$time))),'A..z'),$dl);
     20 		$dl = date( $dl,$time );
     21 		echo $dl;
     22 		unset($dl);
     23 		
     24 		
     25 		$past = abs(time()-$time );
     26 
     27 		$units = [
     28 			[  60, Messages::SECOND, Messages::SECONDS ],
     29 			[  60, Messages::MINUTE, Messages::MINUTES ],
     30 			[  24, Messages::HOUR  , Messages::HOURS   ],
     31 			[  30, Messages::DAY   , Messages::DAYS    ],
     32 			[  12, Messages::MONTH , Messages::MONTHS  ],
     33 			[ 999, Messages::YEAR  , Messages::YEARS   ],
     34 		];
     35 
     36 		echo ' (';
     37 
     38 		if   ( time()<$time)
     39 			echo "+";
     40 
     41 		foreach ( $units as $unit ) {
     42 			if	( $past == 1 ) {
     43 				echo $past.' '.Output::lang($unit[1] );
     44 				break;
     45 			}
     46 			elseif	( $past < $unit[0] ) {
     47 				echo $past.' '.Output::lang( $unit[2] );
     48 				break;
     49 			}
     50 			else {
     51 				$past = intval( $past / $unit[0] );
     52 				continue;
     53 			}
     54 		}
     55 
     56 		echo ')"';
     57 
     58 		echo ' datetime="'.date('c',$time).'"';
     59 
     60 		echo '>';
     61 		$format = abs(\cms\base\Startup::getStartTime()-$time)>(60*60*24)?Messages::DATE_FORMAT:Messages::DATE_FORMAT_TODAY;
     62 		echo date( Output::lang($format),$time );
     63 		echo '</time>';
     64 	}
     65 }