mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
Add locale to Format
Fix up some regressions
This commit is contained in:
parent
02ae2e7ed0
commit
310a259c5f
@ -38,7 +38,7 @@ class DBDate extends DBField
|
|||||||
* Fixed locale to use for ISO date formatting. This is necessary to prevent
|
* Fixed locale to use for ISO date formatting. This is necessary to prevent
|
||||||
* locale-specific numeric localisation breaking internal date strings.
|
* locale-specific numeric localisation breaking internal date strings.
|
||||||
*/
|
*/
|
||||||
const ISO_LOCALE = 'en_NZ';
|
const ISO_LOCALE = 'en_US';
|
||||||
|
|
||||||
public function setValue($value, $record = null, $markChanged = true)
|
public function setValue($value, $record = null, $markChanged = true)
|
||||||
{
|
{
|
||||||
@ -208,7 +208,7 @@ class DBDate extends DBField
|
|||||||
*/
|
*/
|
||||||
public function getFormatter($dateLength = IntlDateFormatter::MEDIUM, $timeLength = IntlDateFormatter::NONE)
|
public function getFormatter($dateLength = IntlDateFormatter::MEDIUM, $timeLength = IntlDateFormatter::NONE)
|
||||||
{
|
{
|
||||||
return $this->getCustomFormatter(null, $dateLength, $timeLength);
|
return $this->getCustomFormatter(null, null, $dateLength, $timeLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -262,9 +262,10 @@ class DBDate extends DBField
|
|||||||
* for the day of the month ("1st", "2nd", "3rd" etc)
|
* for the day of the month ("1st", "2nd", "3rd" etc)
|
||||||
*
|
*
|
||||||
* @param string $format Format code string. See http://userguide.icu-project.org/formatparse/datetime
|
* @param string $format Format code string. See http://userguide.icu-project.org/formatparse/datetime
|
||||||
|
* @param string $locale Custom locale to use
|
||||||
* @return string The date in the requested format
|
* @return string The date in the requested format
|
||||||
*/
|
*/
|
||||||
public function Format($format)
|
public function Format($format, $locale = null)
|
||||||
{
|
{
|
||||||
if (!$this->value) {
|
if (!$this->value) {
|
||||||
return null;
|
return null;
|
||||||
@ -275,9 +276,8 @@ class DBDate extends DBField
|
|||||||
$format = str_replace('{o}', "'{$this->DayOfMonth(true)}'", $format);
|
$format = str_replace('{o}', "'{$this->DayOfMonth(true)}'", $format);
|
||||||
}
|
}
|
||||||
|
|
||||||
$formatter = $this->getFormatter();
|
$formatter = $this->getCustomFormatter($locale, $format);
|
||||||
$formatter->setPattern($format);
|
return $formatter->Format($this->getTimestamp());
|
||||||
return $formatter->format($this->getTimestamp());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -311,9 +311,7 @@ class DBDate extends DBField
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get user format
|
// Get user format
|
||||||
$format = $member->getDateFormat();
|
return $this->Format($member->getDateFormat(), $member->getLocale());
|
||||||
$formatter = $this->getCustomFormatter($format, $member->getLocale());
|
|
||||||
return $formatter->format($this->getTimestamp());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -549,7 +547,7 @@ class DBDate extends DBField
|
|||||||
*/
|
*/
|
||||||
public function URLDate()
|
public function URLDate()
|
||||||
{
|
{
|
||||||
return rawurlencode($this->Format(self::ISO_DATE));
|
return rawurlencode($this->Format(self::ISO_DATE, self::ISO_LOCALE));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function scaffoldFormField($title = null, $params = null)
|
public function scaffoldFormField($title = null, $params = null)
|
||||||
|
@ -111,7 +111,7 @@ class DBDatetime extends DBDate implements TemplateGlobalProvider
|
|||||||
$timeFormat = $member->getTimeFormat();
|
$timeFormat = $member->getTimeFormat();
|
||||||
|
|
||||||
// Get user format
|
// Get user format
|
||||||
return $this->Format($dateFormat . ' ' . $timeFormat);
|
return $this->Format($dateFormat . ' ' . $timeFormat, $member->getLocale());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function requireField()
|
public function requireField()
|
||||||
@ -135,16 +135,17 @@ class DBDatetime extends DBDate implements TemplateGlobalProvider
|
|||||||
*/
|
*/
|
||||||
public function URLDatetime()
|
public function URLDatetime()
|
||||||
{
|
{
|
||||||
return rawurlencode($this->Format(self::ISO_DATETIME));
|
return rawurlencode($this->Format(self::ISO_DATETIME, self::ISO_LOCALE));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function scaffoldFormField($title = null, $params = null)
|
public function scaffoldFormField($title = null, $params = null)
|
||||||
{
|
{
|
||||||
$field = DatetimeField::create($this->name, $title);
|
$field = DatetimeField::create($this->name, $title);
|
||||||
$dateTimeFormat = $field->getDatetimeFormat();
|
$dateTimeFormat = $field->getDatetimeFormat();
|
||||||
|
$locale = $field->getLocale();
|
||||||
|
|
||||||
// Set date formatting hints and example
|
// Set date formatting hints and example
|
||||||
$date = static::now()->Format($dateTimeFormat);
|
$date = static::now()->Format($dateTimeFormat, $locale);
|
||||||
$field
|
$field
|
||||||
->setDescription(_t(
|
->setDescription(_t(
|
||||||
'SilverStripe\\Forms\\FormField.EXAMPLE',
|
'SilverStripe\\Forms\\FormField.EXAMPLE',
|
||||||
@ -225,7 +226,7 @@ class DBDatetime extends DBDate implements TemplateGlobalProvider
|
|||||||
*/
|
*/
|
||||||
public function getFormatter($dateLength = IntlDateFormatter::MEDIUM, $timeLength = IntlDateFormatter::MEDIUM)
|
public function getFormatter($dateLength = IntlDateFormatter::MEDIUM, $timeLength = IntlDateFormatter::MEDIUM)
|
||||||
{
|
{
|
||||||
return new IntlDateFormatter(i18n::get_locale(), $dateLength, $timeLength);
|
return parent::getFormatter($dateLength, $timeLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user