39 lines
1.3 KiB
PHP
39 lines
1.3 KiB
PHP
<?php
|
|
|
|
class Zend_Controller_Action_Helper_MongoDateFunctions extends Zend_Controller_Action_Helper_Abstract
|
|
{
|
|
|
|
public function init()
|
|
{
|
|
|
|
}
|
|
|
|
public function direct($data)
|
|
{
|
|
$dateValidatorSlashWithTime = new Zend_Validate_Date(array('format' => 'dd/mm/yyyy HH:ii:ss'));
|
|
$dateValidatorSlash = new Zend_Validate_Date(array('format' => 'dd/mm/yyyy'));
|
|
$dateValidatorTrattino = new Zend_Validate_Date(array('format' => 'yyyy-mm-dd'));
|
|
|
|
if ($dateValidatorSlashWithTime->isValid($data)) {
|
|
$data = explode(' ', $data);
|
|
$dataString = implode('-', array_reverse(explode("/", $data[0]))) . " " . $data[1];
|
|
} else if ($dateValidatorSlash->isValid($data)) {
|
|
$dataString = implode('-', array_reverse(explode("/", $data))) . $this->checkTimeString($data);
|
|
} else if ($dateValidatorTrattino->isValid($data)) {
|
|
$dataString = $data . $this->checkTimeString($data);
|
|
} else {
|
|
return null;
|
|
}
|
|
|
|
$orig_date = new DateTime($dataString);
|
|
return new MongoDB\BSON\UTCDateTime($orig_date->getTimestamp() * 1000);
|
|
}
|
|
|
|
private function checkTimeString($data)
|
|
{
|
|
return (preg_match('/[0-9]{2}:[0-9]{2}:[0-9]{2}/', $data)) ? '' : " 00:00:00";
|
|
}
|
|
|
|
|
|
}
|