mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-11-02 11:26:04 +01:00
Try to guess the format!
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace Grav\Plugin;
|
||||
|
||||
use DateTime;
|
||||
use Grav\Common\Data;
|
||||
use Grav\Common\File\CompiledYamlFile;
|
||||
use Grav\Common\GPM\GPM;
|
||||
@@ -1013,11 +1014,72 @@ class Admin
|
||||
return $lookup;
|
||||
}
|
||||
|
||||
/**
|
||||
* Guest date format based on euro/US
|
||||
*
|
||||
* @param $date
|
||||
* @return string
|
||||
*/
|
||||
public function guessDateFormat($date)
|
||||
{
|
||||
static $guess;
|
||||
|
||||
if (!$guess) {
|
||||
if (Utils::contains($date, '/')) {
|
||||
if ($this->validateDate($date, 'm/d/Y H:i')) {
|
||||
$guess = 'm/d/Y H:i';
|
||||
} elseif ($this->validateDate($date, 'm/d/y H:i')) {
|
||||
$guess = 'm/d/y H:i';
|
||||
} elseif ($this->validateDate($date, 'm/d/Y G:i')) {
|
||||
$guess = 'm/d/Y G:i';
|
||||
} elseif ($this->validateDate($date, 'm/d/y G:i')) {
|
||||
$guess = 'm/d/y G:i';
|
||||
} elseif ($this->validateDate($date, 'm/d/Y h:ia')) {
|
||||
$guess = 'm/d/Y h:ia';
|
||||
} elseif ($this->validateDate($date, 'm/d/y h:ia')) {
|
||||
$guess = 'm/d/y h:ia';
|
||||
} elseif ($this->validateDate($date, 'm/d/Y g:ia')) {
|
||||
$guess = 'm/d/Y g:ia';
|
||||
} elseif ($this->validateDate($date, 'm/d/y g:ia')) {
|
||||
$guess = 'm/d/y g:ia';
|
||||
}
|
||||
} elseif (Utils::contains($date, '-')) {
|
||||
if ($this->validateDate($date, 'd-m-Y H:i')) {
|
||||
$guess = 'd-m-Y H:i';
|
||||
} elseif ($this->validateDate($date, 'd-m-y H:i')) {
|
||||
$guess = 'd-m-y H:i';
|
||||
} elseif ($this->validateDate($date, 'd-m-Y G:i')) {
|
||||
$guess = 'd-m-Y G:i';
|
||||
} elseif ($this->validateDate($date, 'd-m-y G:i')) {
|
||||
$guess = 'd-m-y G:i';
|
||||
} elseif ($this->validateDate($date, 'd-m-Y h:ia')) {
|
||||
$guess = 'd-m-Y h:ia';
|
||||
} elseif ($this->validateDate($date, 'd-m-y h:ia')) {
|
||||
$guess = 'd-m-y h:ia';
|
||||
} elseif ($this->validateDate($date, 'd-m-Y g:ia')) {
|
||||
$guess = 'd-m-Y g:ia';
|
||||
} elseif ($this->validateDate($date, 'd-m-y g:ia')) {
|
||||
$guess = 'd-m-y g:ia';
|
||||
}
|
||||
} else {
|
||||
$guess = 'd-m-Y H:i';
|
||||
}
|
||||
}
|
||||
|
||||
return $guess;
|
||||
}
|
||||
|
||||
public function validateDate($date, $format)
|
||||
{
|
||||
$d = DateTime::createFromFormat($format, $date);
|
||||
return $d && $d->format($format) == $date;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $php_format
|
||||
* @return string
|
||||
*/
|
||||
function dateformatToMomentJS($php_format)
|
||||
public function dateformatToMomentJS($php_format)
|
||||
{
|
||||
$SYMBOLS_MATCHING = array(
|
||||
// Day
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
{% extends "forms/field.html.twig" %}
|
||||
|
||||
{% set default_php_dateformat = "d-m-Y H:i" %}
|
||||
|
||||
{% if not config.system.pages.dateformat.default and value %}
|
||||
{% if value|split('/')|count %}{% set default_php_dateformat = 'm/d/Y H:i' %}{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% set php_dateformat = config.system.pages.dateformat.default ?: default_php_dateformat %}
|
||||
{% set default_php_dateformat = admin.guessDateFormat(value) %}
|
||||
{% set php_dateformat = admin.page.dateformat ?: config.system.pages.dateformat.default ?: default_php_dateformat %}
|
||||
{% set js_dateformat = admin.dateformatToMomentJS(php_dateformat) %}
|
||||
{% set value = (value is null ? field.default : value) %}
|
||||
{% set value = (value is null ? value : value|date(php_dateformat)) %}
|
||||
|
||||
{% block input %}
|
||||
{{ dump(default_php_dateformat) }}
|
||||
{{ dump(admin.page.dateformat) }}
|
||||
{{ dump(config.system.pages.dateformat.default) }}
|
||||
{{ dump(php_dateformat) }}
|
||||
{{ dump(js_dateformat) }}
|
||||
{{ dump('======') }}
|
||||
<div class="form-input-wrapper datetime-picker-wrapper {{ field.size }}">
|
||||
<input
|
||||
name="{{ (scope ~ field.name)|fieldName }}"
|
||||
|
||||
Reference in New Issue
Block a user