本文整理汇总了PHP中date_parse_from_format函数的典型用法代码示例。如果您正苦于以下问题:PHP date_parse_from_format函数的具体用法?PHP date_parse_from_format怎么用?PHP date_parse_from_format使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了date_parse_from_format函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: jsDate
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;
}
示例2: dateArrayFromFMDate
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')] . '曜日');
}
示例3: downloadTvGuide
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;
}
示例4: testParseDateFormat
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']);
}
示例5: __construct
/**
* @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);
}
示例6: statisticAction
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"));
}
}
示例7: __construct
/**
* 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;
}
示例8: convertNHS2MySQL
/**
* 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;
}
}
示例9: __construct
/**
* @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"));
}
}
}
示例10: boot
/**
* 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;
});
}
示例11: procmsg
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";
}
}
示例12: msgAccept
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 = 'noreply@viruviking.club';
$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;
}
}
示例13: timeToSeconds
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;
}
示例14: validate
/**
* @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'];
}
示例15: jalaliStrtotime
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']);
}