Example #1
0
 public function jsDate($datestr)
 {
     $format = 'Y-m-d H:i:s';
     $mdate = date_parse_from_format($format, $datestr);
     $jsDate = $mdate['year'] . "," . ($mdate['month'] - 1) . "," . $mdate['day'] . "," . $mdate['hour'] . "," . $mdate['minute'] . "," . $mdate['second'];
     return $jsDate;
 }
 function dateArrayFromFMDate($d)
 {
     if ($d == '') {
         return '';
     }
     $jYearStartDate = array('1989-1-8' => '平成', '1925-12-25' => '昭和', '1912-7-30' => '大正', '1868-1-25' => '明治');
     $wStrArray = array('日', '月', '火', '水', '木', '金', '土');
     $dateComp = date_parse_from_format('m/d/Y H:i:s', $d);
     $dt = new DateTime();
     $dt->setDate($dateComp['year'], $dateComp['month'], $dateComp['day']);
     $dt->setTime($dateComp['hour'], $dateComp['minute'], $dateComp['second']);
     $gengoName = '';
     $gengoYear = 0;
     foreach ($jYearStartDate as $startDate => $gengo) {
         $dtStart = new DateTime($startDate);
         $dinterval = $dt->diff($dtStart);
         if ($dinterval->invert == 1) {
             $gengoName = $gengo;
             $gengoYear = $dt->format('Y') - $dtStart->format('Y') + 1;
             $gengoYear = $gengoYear == 1 ? '元' : $gengoYear;
             break;
         }
     }
     return array('unixtime' => $dt->format('U'), 'year' => $dt->format('Y'), 'jyear' => $gengoName . $gengoYear . '年', 'month' => $dt->format('m'), 'day' => $dt->format('d'), 'hour' => $dt->format('H'), 'minute' => $dt->format('i'), 'second' => $dt->format('s'), 'weekdayName' => $wStrArray[$dt->format('w')], 'weekday' => $dt->format('w'), 'longdate' => $dt->format('Y/m/d'), 'jlongdate' => $gengoName . ' ' . $gengoYear . $dt->format(' 年 n 月 j 日 ') . $wStrArray[$dt->format('w')] . '曜日');
 }
Example #3
0
 function downloadTvGuide($channel, $url)
 {
     global $DAYS;
     $i = 0;
     $result = array();
     for ($n = 0; $n < $DAYS; $n++) {
         $date = date('Y-m-d', mktime(0, 0, 0, date('m'), date('d') + $n, date('Y')));
         if ($n == 0) {
             $response = openUrl($url);
         } else {
             $response = openUrl($url . '/' . $date);
         }
         if (!preg_match_all('|CHANNEL = {(.*?)};|sm', $response, $matches)) {
             echo '[IPLA] Unable to produce whole EPG for channel ' . $channel . '!' . "\n";
             return $result;
         }
         preg_match('|program: (.*?)\\};|sm', $matches[0][0], $details);
         $data = json_decode($details[1]);
         foreach ($data as $number => $program) {
             $hour = (int) $data[$number]->hour . ':' . $data[$number]->minute;
             $result[$i]['category'] = '';
             $result[$i]['desc'] = strip_tags($data[$number]->description);
             $result[$i]['title'] = strip_tags($data[$number]->title);
             if (preg_match('|^[0-3]{1}:[0-9]{2}|', $hour, $tmp)) {
                 $date = date('Y-m-d', mktime(0, 0, 0, date('m'), date('d') + $n + 1, date('Y')));
             }
             $time = date_parse_from_format('Y-m-d H:i', $date . ' ' . $hour);
             $result[$i]['time'] = mktime($time['hour'], $time['minute'], 0, $time['month'], $time['day'], $time['year']);
             $i++;
         }
     }
     return $result;
 }
Example #4
0
 public function testParseDateFormat()
 {
     $arr = date_parse_from_format("d/m/Y", '01/01/2001');
     $this->assertEquals(1, $arr['day']);
     $this->assertEquals(1, $arr['month']);
     $this->assertEquals(2001, $arr['year']);
 }
Example #5
0
	/**
	 * @param string $date String representation of date.
	 * @param string $format PHP date format. If not specified, the format is got from the current culture.
	 *
	 * @throws Main\ObjectException
	 */
	public function __construct($date = null, $format = null)
	{
		$this->value = new \DateTime();
		if ($date !== null && $date !== "")
		{
			if ($format === null)
			{
				$format = static::getFormat();
			}

			$parsedValue = date_parse_from_format($format, $date);
			//Ignore errors when format is longer than date
			//or date string is longer than format
			if ($parsedValue['error_count'] > 1)
			{
				if (
					current($parsedValue['errors']) !== 'Trailing data'
					&& current($parsedValue['errors']) !== 'Data missing'
				)
				{
					throw new Main\ObjectException("Incorrect date: ".$date);
				}
			}

			$this->value->setDate($parsedValue['year'], $parsedValue['month'], $parsedValue['day']);
		}
		$this->value->setTime(0, 0, 0);
	}
 public function statisticAction()
 {
     $id = $this->dispatcher->getParam('id');
     $banner = Banners::findFirst($id);
     if ($id && $banner && $banner->advertiser_id == $this->auth->get_user()->id) {
         $this->assets->collection('bottom-js')->addJs('js/moment/moment.min.js')->addJs('js/moment/ru.js')->addJs('js/datetimepicker/js/bootstrap-datetimepicker.js');
         $this->assets->collection('css')->addCss('js/datetimepicker/css/bootstrap-datetimepicker.min.css');
         if (!$this->request->getQuery('start_date')) {
             if (!empty($banner->start_date)) {
                 $start_date = $banner->start_date;
             } else {
                 $first_view = $banner->views->getFirst()->date;
                 if (!empty($first_view)) {
                     $start_date = $first_view;
                 } else {
                     $start_date = 0;
                 }
             }
         } else {
             $start_date = date_parse_from_format('d.m.Y H:i', $this->request->getQuery('start_date'));
             $start_date = mktime($start_date['hour'], $start_date['minute'], 0, $start_date['month'], $start_date['day'], $start_date['year']);
         }
         if (!$this->request->getQuery('end_date')) {
             if (!empty($banner->end_date)) {
                 if ($banner->end_date > time()) {
                     $end_date = time();
                 } else {
                     $end_date = $banner->end_date;
                 }
             } else {
                 $end_date = time();
             }
         } else {
             $end_date = date_parse_from_format('d.m.Y H:i', $this->request->getQuery('end_date'));
             $end_date = mktime($end_date['hour'], $end_date['minute'], 0, $end_date['month'], $end_date['day'], $end_date['year']);
         }
         $days = floor(($end_date + 10800) / 86400) - floor(($start_date + 10800) / 86400) + 1;
         $days_arr = [];
         if ($days > 0) {
             for ($i = 0; $i < $days; $i++) {
                 $day = floor(($start_date + 10800) / 86400) * 86400 + $i * 86400 - 10800;
                 if ((!empty($banner->start_date) ? $day >= floor(($banner->start_date + 10800) / 86400) * 86400 - 10800 : true) && $day < (!empty($banner->end_date) ? $banner->end_date : time())) {
                     $days_arr[] = array('date' => $day, 'views' => $banner->countViews("date >= {$day} AND date < " . ($day + 86400)), 'clicks' => $banner->countViews("date >= {$day} AND date < " . ($day + 86400) . " AND clicked = 1"));
                 }
             }
         }
         $this->view->days = $days_arr;
         $q = "date >= {$start_date} AND date <= {$end_date}";
         $this->view->views = $banner->countViews(array($q));
         $q .= " AND clicked = 1";
         $this->view->clicks = $banner->countViews(array($q));
         $this->view->start_date = $start_date;
         $this->view->end_date = $end_date;
         $this->view->banner = $banner;
         $this->view->title = "Статистика для баннера \"{$banner->name}\"";
         \Phalcon\Tag::prependTitle("Статистика для баннера \"{$banner->name}\"");
     } else {
         $this->dispatcher->forward(array("namespace" => 'App\\Controllers', "controller" => "error", "action" => "notFound"));
     }
 }
Example #7
0
 /**
  * Constructor
  *
  * @param null|string                  $date null: now, string: date or datetime string as UTC, int: unix timestamp
  * @param null|string|int|DateTimeZone $tz   null: server offset, string: timezone string (e.g. UTC), int: offset in hours, DateTimeZone: PHP timezone
  * @param null|string                  $from Format to convert the date from
  * @param Config                       $config
  */
 public function __construct($date = null, $tz = null, $from = null, Config $config)
 {
     $this->config = $config;
     $this->init();
     if (!$date) {
         $date = 'now';
     }
     if (!$tz) {
         $tz = Application::CBFramework()->getCfg('user_timezone');
     }
     $tzCache = date_default_timezone_get();
     date_default_timezone_set('UTC');
     if (is_integer($date)) {
         $this->date = new DateTime();
         $this->date->setTimestamp($date);
     } else {
         if ($date == 'now') {
             $from = null;
         } elseif (is_numeric($date)) {
             $date = date('c', $date);
         }
         if ($from) {
             $this->date = new DateTime();
             $dateArray = date_parse_from_format($from, $date);
             $this->date->setDate($dateArray['year'], $dateArray['month'], $dateArray['day']);
             $this->date->setTime($dateArray['hour'], $dateArray['minute'], $dateArray['second']);
         } else {
             $this->date = new DateTime($date);
         }
     }
     date_default_timezone_set($tzCache);
     $this->setTimezone($tz);
     $this->from = $from;
 }
Example #8
0
 /**
  * Convert NHS dates to MySQL format.
  * Strings that do not match the NHS format are returned unchanged or are not valid dates.
  *
  * @param string|array $data Data containing one or more NHS dates
  * @param array $fields Fields (keys) to convert (optional, if empty then all fields are checked for dates)
  * @return string|array
  */
 public static function convertNHS2MySQL($data, $fields = null)
 {
     if ($is_string = !is_array($data)) {
         $data = array('dummy' => $data);
     }
     $list = $fields ? $fields : array_keys($data);
     foreach ($list as $key) {
         if (isset($data[$key])) {
             // traverse down arrays to convert nested structures
             if (is_array($data[$key])) {
                 $data[$key] = Helper::convertNHS2MySQL($data[$key], $fields);
             } elseif (is_string($data[$key]) && preg_match(self::NHS_DATE_REGEX, $data[$key])) {
                 $check_date = date_parse_from_format('j M Y', $data[$key]);
                 if (checkdate($check_date['month'], $check_date['day'], $check_date['year'])) {
                     $data[$key] = date('Y-m-d', strtotime($data[$key]));
                 }
             }
         }
     }
     if ($is_string) {
         return $data['dummy'];
     } else {
         return $data;
     }
 }
Example #9
0
 /**
  * @param string $time String representation of datetime.
  * @param string $format PHP datetime format. If not specified, the format is got from the current culture.
  * @param \DateTimeZone $timezone Optional timezone object.
  *
  * @throws Main\ObjectException
  */
 public function __construct($time = null, $format = null, \DateTimeZone $timezone = null)
 {
     if ($timezone === null) {
         $this->value = new \DateTime();
     } else {
         $this->value = new \DateTime(null, $timezone);
     }
     if ($time !== null && $time !== "") {
         if ($format === null) {
             $format = static::getFormat();
         }
         $parsedValue = date_parse_from_format($format, $time);
         //Ignore errors when format is longer than date
         //or date string is longer than format
         if ($parsedValue['error_count'] > 1) {
             if (current($parsedValue['errors']) !== 'Trailing data' && current($parsedValue['errors']) !== 'Data missing') {
                 throw new Main\ObjectException("Incorrect date/time: " . $time);
             }
         }
         $this->value->setDate($parsedValue['year'], $parsedValue['month'], $parsedValue['day']);
         $this->value->setTime($parsedValue['hour'], $parsedValue['minute'], $parsedValue['second']);
         if (isset($parsedValue["relative"]) && isset($parsedValue["relative"]["second"]) && $parsedValue["relative"]["second"] != 0) {
             $this->value->add(new \DateInterval("PT" . $parsedValue["relative"]["second"] . "S"));
         }
     }
 }
 /**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
     Validator::extend('hashed', function ($attribute, $value, $parameters) {
         // If we're already logged in
         if (Auth::check()) {
             $user = Auth::user();
         } else {
             // Otherwise, try to get the username from form input
             $user = User::where('name', Input::get('name'))->get();
             if (!$user->count()) {
                 return false;
             }
             $user = $user[0];
         }
         if (Hash::check($value, $user->password)) {
             return true;
         }
         return false;
     });
     Validator::extend('time', function ($attribute, $value, $parameters) {
         $value = trim($value);
         // Check against 12 hour time (with AM/PM) or 24 hour time
         $twelve = date_parse_from_format('h:i a', $value);
         $twentyfour = date_parse_from_format('H:i', $value);
         if ($twelve['error_count'] === 0 || $twentyfour['error_count'] === 0) {
             return true;
         }
         return false;
     });
 }
Example #11
0
function procmsg($topic, $msg, $qos)
{
    global $db;
    if ($topic == "sensor/cc3200/values") {
        $payload = json_decode($msg);
        if (!$payload) {
            return;
        }
        if (!isset($payload->hum) || !isset($payload->temp) || !isset($payload->time)) {
            return;
        }
        if (!is_numeric($payload->hum) || !is_numeric($payload->temp)) {
            return;
        }
        // (recorded,temperature,humidity) VALUES ('Sun Jan 17 21:15:58 2016', 2100.000000, 2600.000000)
        $t_time = date_parse_from_format("D M j G:i:s Y", $payload->time);
        if (!is_array($t_time)) {
            return;
        }
        $time = sprintf("%s-%s-%s %s:%s:%s", $t_time["year"], $t_time["month"], $t_time["day"], $t_time["hour"], $t_time["minute"], $t_time["second"]);
        $sql = sprintf("INSERT INTO environment (recorded,temperature,humidity) VALUES ('%s', %f, %f)", $db->escapeString($time), floatval($payload->temp / 100.0), floatval($payload->hum / 100.0));
        $res = $db->exec($sql);
        if (!$res) {
            echo "DB error: " + $db->lastErrorMsg() + "\n";
            return;
        }
    } else {
        echo "Msg Received: " . date("r") . "\nTopic:{$topic}\n{$msg}\n";
    }
}
function msgAccept($UserData, $EventDetails)
{
    $months_titles_array = array(1 => 'января', 2 => 'февраля', 3 => 'марта', 4 => 'апреля', 5 => 'мая', 6 => 'июня', 7 => 'июля', 8 => 'августа', 9 => 'сентября', 10 => 'октября', 11 => 'ноября', 12 => 'декабря');
    $clear_date_arr = date_parse_from_format('Y-n-j H:i:sP', $EventDetails['start'][0]);
    $month_name = $months_titles_array[$clear_date_arr['month']];
    $client_training_datetime = $clear_date_arr['day'] . ' ' . $month_name . ' в ' . $clear_date_arr['hour'] . ':' . $clear_date_arr['minute'];
    $mail_html_prepare = '<html><body><link href="https://viruviking.club/resources/css/virvik_mail.css" rel="stylesheet"><p style="text-align:center;"><img src="https://viruviking.club/resources/img/logo/mail_logo_100.png" style="width:100px;"></p><p>Здравствуйте!</p><p>Координаторы сообщества одобрили Вашу заявку на участие в пробной тренировке по историческому фехтованию. Пожалуйста, крайне внимательно ознакомьтесь с текстом данного сообщения.</p>
<strong>Тренировка состоится:</strong><div style="display:block;width:400px;border:solid 1px #00a106;background:#fff;padding:10px 20px;margin:10px 0">
<p><strong>Дата, время:</strong> ' . $client_training_datetime . '
<br/><strong>Место проведения:</strong> ' . $EventDetails['location'] . '</p>
<p>Контактное лицо (координатор):';
    $mail_html_prepare .= '<br/><strong>Виктор Литвинков</strong><br/><i>Орг. вопросы сообщества в Йыхви</i><br/>+372 55 59 3171<br/><a href="mailto:victor@viruviking.club">victor@viruviking.club</a></div><h2>Информация для новичков</h2><p>Методика обучения, используемая Викингами Вирумаа, достаточно эффективна, и многие замечают резкий прогресс уже через 1-3 недели. Однако хотелось бы придерживать прыть начинающих бойцов, пытающихся форсировать достижение высоких результатов, ибо:<br></p><ul><li>Только ровный и стабильный тренировочный процесс способен, без срывов и серьезных травм, привести к вершинам мастерства.</li><li>Мастерство поединщика способно формироваться лишь на фундаменте персонально отточенной базовой техники! 90% — шлифовка действий и 10% - спаррингов.</li><li>Преждевременное стремление слабо подготовленного спортсмена к настоящему жесткому спаррингу — прямая дорога к разочарованиям и травмам!</li></ul><p>Суть этого предостережения не в том, чтобы удерживать учеников от реальных поединков, но в том, чтобы плавно и последовательно вводить новичков в полновесный тренировочный цикл.</p>';
    $mail_html_prepare .= '<h3>Готов ли я к тренировкам?</h3><p>Неплохой физической базой для исторического фехтования являются бокс, борьба, тяжелая атлетика и прочие виды спорта, предполагающие силовую нагрузку. Восточные же единоборства являются, скорее тормозящим фактором, чем фундаментом физической подготовки: приходится тратить массу времени и сил, чтобы вернуть «восточникам» естественность и целесообразность движений.</p><p>Хорошие задатки имеют люди, занимавшиеся альпинизмом, водным туризмом, атлетикой и пожарно-прикладным спортом. Неплохой физической подготовкой также является стандартный набор приседаний, прыжков, отжиманий и подтягиваний.</p><h3>Инвентарь и экипировка</h3><p>Для тренировок по историческому фехтованию в первую очередь Вам потребуется тренировочный (утяжеленный) одноручный меч. На втором этапе тренировочной программы начнутся занятия с «гуманизированным» оружием. Для получения тренировочных снарядов пожалуйста обратитесь к координаторам сообщества или тренеру.</p><p>На тренировку следует приходить в комфортной спортивной одежде, тело должно быть покрыто максимальным образом. Рекомендуемый набор: кофта с длинными рукавами и капюшоном, спортивные штаны. Подберите одежду, которую не жалко испачкать, порвать или потерять. Для защиты рук необходимо использовать перчатки. Рекомендуется одевать тактические перчатки с защитными пластинами или шерстяные перчатки с подкладкой внутри.
</p>';
    $mail_html_prepare .= '<p>Для занятий в зале необходима сменная обувь. Если есть желание, можно заниматься в носках или босиком. С собой возьмите бутылочку воды - скорее всего, в ходе интенсивной тренировки захочется пить.</p><h3>Что еще необходимо знать?</h3><p>Первый этап тренировочной программы - общефизическая подготовка. Несколько тренировок подряд Вы будете делать различные упражнения для развития ног, рук и корпуса. Для достижения наилучших результатов рекомендуем ежедневно (или разу в пару дней) самостоятельно повторять комплекс упражнений, предложенных в рамках тренировки. Занятия в спортзале («качалке») и периодическое посещение бассейна послужат отличным дополнением к тренировочному процессу в рамках предложенной программы.</p><p>Выполнение упражнений в рамках физподготовки, а также отработка ударов и приемов на «балде», осуществляется тренировочными (утяжеленными) снарядами (т.е. «на железе»). Контактные бои (спарринги) проводятся только на гуманизированном оружии. Нецелевое использование инвентаря - запрещено.</p><p>Тренировки проводятся на так называемых «тренировочных полигонах» - специально оборудованных площадках. Рекомендовано явиться на место проведения тренировки за 5 минут до начала занятия.</p><p>До встречи на тренировке!</p>';
    $Mail = new PHPMailer();
    $Mail->From = '*****@*****.**';
    $Mail->FromName = 'Викинги Вирумаа';
    $Mail->CharSet = 'utf-8';
    $Mail->Subject = 'VV - Уведомление с сайта viruviking.club';
    $Mail->isHTML(true);
    $Mail->Body = $mail_html_prepare;
    // $Mail->AltBody  = $mail_txt_prepare;
    $Mail->AddAddress($UserData[2]['value']);
    if (!$Mail->Send()) {
        return FALSE;
    } else {
        return TRUE;
    }
}
Example #13
0
 private static function timeToSeconds($time)
 {
     $parsed = date_parse_from_format('H:i', $time);
     $seconds = 0;
     $seconds += $parsed['hour'] * 60 * 60;
     $seconds += $parsed['minute'] * 60;
     return $seconds;
 }
Example #14
0
 /**
  * @param mixed $input
  * @return bool
  */
 public function validate($input)
 {
     if (!is_string($input)) {
         return false;
     }
     $result = date_parse_from_format($this->format, $input);
     return !$result['error_count'] && !$result['warning_count'];
 }
Example #15
0
 private function jalaliStrtotime($strdate, $format)
 {
     if (!$this->validate($strdate, $format)) {
         throw new InvalidParamException("Given date string: {$strdate}, is not in form of given format: {$format}", 1);
     }
     $pd = date_parse_from_format($format, $strdate);
     return $this->mktime($pd['hour'], $pd['minute'], $pd['second'], $pd['month'], $pd['day'], $pd['year']);
 }
Example #16
0
 /**
  * @param $target
  * @return DateTime
  */
 public static function convertIntoDate($target)
 {
     $CI =& get_instance();
     $CI->load->library('session');
     $components = date_parse_from_format($CI->session->site_date_parsing, $target);
     extract($components);
     return date_create("{$year}/{$month}/{$day}");
 }
 /**
  * Publish news
  * @param string $id NewsTeaserID
  * @param string $date Date
  */
 public function publishNews($id, $date)
 {
     $parsed = date_parse_from_format("d.m.Y - H:i", $date);
     $phpdate = mktime($parsed['hour'], $parsed['minute'], $parsed['second'], $parsed['month'], $parsed['day'], $parsed['year']);
     $mysqldate = date('Y-m-d H:i:s', $phpdate);
     $sql = "UPDATE newsteaser\n                SET published = :date\n                WHERE newsteaserid = :id;";
     $query = $this->db->prepare($sql);
     $query->execute(array(':id' => $id, ':date' => $mysqldate));
 }
 /**
  * Validate date format must in format YYYYMMDDHHmmss
  * 
  * @param unknown $attribute
  * @param unknown $value
  * @param unknown $parameters
  * @return boolean
  */
 public function validateValDateTime($attribute, $value, $parameters)
 {
     $result = date_parse_from_format("YnjHis", $value);
     // print_r($result);
     if ($result['error_count'] == 0) {
         return checkdate($result['month'], $result['day'], $result['year']) && $result['hour'] >= 0 && $result['hour'] <= 23 && $result['minute'] >= 0 && $result['minute'] <= 59 && $result['second'] >= 0 && $result['second'] <= 59;
     }
     return false;
 }
 /** 
  * 验证日期格式是否正确 
  * @param string $date 
  * @param string $format 
  * @return boolean 
  */
 function is_date($date, $format = 'Y-m-d')
 {
     $t = date_parse_from_format($format, $date);
     if (empty($t['errors'])) {
         return true;
     } else {
         return false;
     }
 }
Example #20
0
 /**
  *
  * @param blaze\lang\String|string $string
  * @return blaze\util\Date
  */
 public function parseDate($string)
 {
     $info = date_parse_from_format($this->pattern, $string);
     if ($info['error_count'] !== 0) {
         throw new ParseException($info['errors'][0]);
     }
     $d = new \blaze\util\Date($info['year'], $info['month'], $info['day'], $info['hour'], $info['minute'], $info['second']);
     return $d;
 }
function convertFromDateToUnixTimestamp($date)
{
    //global $months;
    $timestamp = time();
    $array = date_parse_from_format('F j, Y', $date);
    if (is_array($array)) {
        $timestamp = mktime(0, 0, 0, $array['month'], $array['day'], $array['year']);
    }
    return $timestamp;
}
Example #22
0
 /**
  * Validate
  * 
  * @param string $data Date to validate
  * @return boolean Returns true if the data validates with the format and is before the given date, otherwise false
  * @access public
  */
 public function validate($data)
 {
     $parsed_date = date_parse_from_format($this->format, $data);
     if ((int) $parsed_date['error_count'] + (int) $parsed_date['warning_count'] > 0) {
         return false;
     }
     $data_dt = \DateTime::createFromFormat($this->format, $data, $this->timezone);
     $date_after_dt = \DateTime::createFromFormat($this->format, $this->date, $this->timezone);
     return $data_dt < $date_after_dt;
 }
 public static function dateInTimestamp($_data, $_formato)
 {
     $ret = -1;
     try {
         $tmpTime = date_parse_from_format($_data, $_formato);
         $ret = mktime(0, 0, 0, $tmpTime['month'], $tmpTime['day'], $tmpTime['year']);
     } catch (Exception $e) {
         throw $e;
     }
     return $ret;
 }
 /**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
     Validator::extend('future', function ($attribute, $value, $parameters) {
         return strtotime($value) < time();
     });
     Validator::extend('date_check', function ($attribute, $value, $parameters) {
         $dp = date_parse_from_format('Y-m-d', $value);
         //dateからパースする関数 おかしい書式にはwarningが返されるのでそれを利用
         return $dp['warning_count'] == 0;
     });
 }
 protected function asDateTime($value)
 {
     foreach ($this->iso8601Dates as $format) {
         $parsed = date_parse_from_format($format, $value);
         if ($parsed['error_count'] === 0 && $parsed['warning_count'] === 0) {
             $value = Carbon::createFromFormat($format, $value);
             break;
         }
     }
     return parent::asDateTime($value);
 }
 public function validateValue($value)
 {
     $check_date = null;
     if ($m = preg_match('/^\\d\\d\\d\\d-\\d\\d{0,1}-\\d\\d{0,1}( \\d\\d:\\d\\d:\\d\\d){0,1}$/', $value)) {
         $check_date = date_parse_from_format('Y-m-d', $value);
     }
     if (!$check_date || !checkdate($check_date['month'], $check_date['day'], $check_date['year'])) {
         return false;
     }
     return true;
 }
 public function getAllYearOnMenu()
 {
     $menus = $this->getAllMenu();
     $years = array();
     foreach ($menus as $menu) {
         $date = date_parse_from_format("Y-m-d H:i:s", date('Y-M-d h:i:s', $menu["NgayLap"]->sec));
         $year = $date["year"];
         if (!array_key_exists($year, $years)) {
             $years[$year] = $year;
         }
     }
     return $years;
 }
 /**
  * @param $format string date format
  * @param $dateString
  * @return int|null timestamp or null if can't parse
  */
 public function parseToTimeStamp($format, $dateString)
 {
     if ($dateString === null) {
         return null;
     }
     // Requires PHP >= 5.3.0
     $t = date_parse_from_format($format, $dateString);
     if (isset($t['hour']) && isset($t['minute']) && isset($t['second']) && isset($t['month']) && isset($t['day']) && isset($t['year'])) {
         return mktime($t['hour'], $t['minute'], $t['second'], $t['month'], $t['day'], $t['year']);
     } else {
         return null;
     }
 }
Example #29
0
 /**
  * @param mixed $value Value to be validated
  * @param null  $field Unused by this rule
  * @param null  $allFields
  *
  * @internal param null $allFields Unused by this rule
  *
  * @return bool
  *
  * @since 2.0
  */
 public function validate($value, $field = null, $allFields = null)
 {
     $parameters = $this->getParameter();
     $format = $parameters['format'];
     if (is_object($value) and !method_exists($value, '__toString') or $this->getParameter() === null) {
         return false;
     }
     if (!$format) {
         return false;
     }
     $date = date_parse_from_format($format, (string) $value);
     return $date['error_count'] + $date['warning_count'] === 0;
 }
 private function convertFormat($date)
 {
     $date_parsed = date_parse_from_format($this->format, $date);
     if ($date_parsed['error_count'] > 0) {
         return $date;
     }
     if ($date_parsed['day'] === FALSE) {
         $date_parsed['day'] = '01';
     }
     if ($date_parsed['month'] === FALSE) {
         $date_parsed['month'] = '01';
     }
     return date($this->convertToFormat, strtotime($date_parsed['day'] . '-' . $date_parsed['month'] . '-' . $date_parsed['year']));
 }