Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
3df51e4c
Commit
3df51e4c
authored
Jan 25, 2014
by
Qiang Xue
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2155 from dizews/timezone-in-base-formatter
add timeZone into base formatter
parents
d8516b17
330ae053
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
16 deletions
+35
-16
CHANGELOG.md
framework/CHANGELOG.md
+1
-0
Formatter.php
framework/base/Formatter.php
+34
-4
Formatter.php
framework/i18n/Formatter.php
+0
-12
No files found.
framework/CHANGELOG.md
View file @
3df51e4c
...
...
@@ -104,6 +104,7 @@ Yii Framework 2 Change Log
-
Enh: Added support to parse json request data to Request::getRestParams() (cebe)
-
Enh: Added ability to get incoming headers (dizews)
-
Enh: Added
`beforeRun()`
and
`afterRun()`
to
`yii\base\Action`
(qiangxue)
-
Enh: Added support formatter timeZone by default (dizews)
-
Chg #1519:
`yii\web\User::loginRequired()`
now returns the
`Response`
object instead of exiting the application (qiangxue)
-
Chg #1586:
`QueryBuilder::buildLikeCondition()`
will now escape special characters and use percentage characters by default (qiangxue)
-
Chg #1610:
`Html::activeCheckboxList()`
and
`Html::activeRadioList()`
will submit an empty string if no checkbox/radio is selected (qiangxue)
...
...
framework/base/Formatter.php
View file @
3df51e4c
...
...
@@ -28,6 +28,15 @@ use yii\helpers\Html;
class
Formatter
extends
Component
{
/**
* @var string|\IntlTimeZone|\DateTimeZone the timezone to use for formatting time and date values.
* This can be any value that may be passed to [date_default_timezone_set()](http://www.php.net/manual/en/function.date-default-timezone-set.php)
* e.g. `UTC`, `Europe/Berlin` or `America/Chicago`.
* Refer to the [php manual](http://www.php.net/manual/en/timezones.php) for available timezones.
* This can also be an IntlTimeZone or a DateTimeZone object.
* If not set, [[\yii\base\Application::timezone]] will be used.
*/
public
$timeZone
;
/**
* @var string the default format string to be used to format a date using PHP date() function.
*/
public
$dateFormat
=
'Y/m/d'
;
...
...
@@ -59,12 +68,20 @@ class Formatter extends Component
*/
public
$thousandSeparator
;
/**
* Initializes the component.
*/
public
function
init
()
{
if
(
$this
->
timeZone
===
null
)
{
$this
->
timeZone
=
Yii
::
$app
->
timeZone
;
}
if
(
is_string
(
$this
->
timeZone
))
{
$this
->
timeZone
=
new
\DateTimeZone
(
$this
->
timeZone
);
}
elseif
(
$this
->
timeZone
instanceof
IntlTimeZone
)
{
$this
->
timeZone
=
$this
->
timeZone
->
toDateTimeZone
();
}
if
(
empty
(
$this
->
booleanFormat
))
{
$this
->
booleanFormat
=
[
Yii
::
t
(
'yii'
,
'No'
),
Yii
::
t
(
'yii'
,
'Yes'
)];
}
...
...
@@ -258,7 +275,7 @@ class Formatter extends Component
return
$this
->
nullDisplay
;
}
$value
=
$this
->
normalizeDatetimeValue
(
$value
);
return
date
(
$format
===
null
?
$this
->
dateFormat
:
$format
,
$value
);
return
$this
->
formatTimestamp
(
$value
,
$format
===
null
?
$this
->
dateFormat
:
$format
,
$value
);
}
/**
...
...
@@ -282,7 +299,7 @@ class Formatter extends Component
return
$this
->
nullDisplay
;
}
$value
=
$this
->
normalizeDatetimeValue
(
$value
);
return
date
(
$format
===
null
?
$this
->
timeFormat
:
$format
,
$value
);
return
$this
->
formatTimestamp
(
$value
,
$format
===
null
?
$this
->
timeFormat
:
$format
,
$value
);
}
/**
...
...
@@ -306,7 +323,7 @@ class Formatter extends Component
return
$this
->
nullDisplay
;
}
$value
=
$this
->
normalizeDatetimeValue
(
$value
);
return
date
(
$format
===
null
?
$this
->
datetimeFormat
:
$format
,
$value
);
return
$this
->
formatTimestamp
(
$value
,
$format
===
null
?
$this
->
datetimeFormat
:
$format
,
$value
);
}
/**
...
...
@@ -326,6 +343,19 @@ class Formatter extends Component
}
/**
* @param integer $value normalized datetime value
* @param string $format the format used to convert the value into a date string.
* @return string the formatted result
*/
protected
function
formatTimestamp
(
$value
,
$format
)
{
$date
=
new
DateTime
();
$date
->
setTimestamp
(
$value
);
$date
->
setTimezone
(
$this
->
timeZone
);
return
$date
->
format
(
$format
);
}
/**
* Formats the value as an integer.
* @param mixed $value the value to be formatted
* @return string the formatting result.
...
...
framework/i18n/Formatter.php
View file @
3df51e4c
...
...
@@ -39,15 +39,6 @@ class Formatter extends \yii\base\Formatter
*/
public
$locale
;
/**
* @var string|\IntlTimeZone|\DateTimeZone the timezone to use for formatting time and date values.
* This can be any value that may be passed to [date_default_timezone_set()](http://www.php.net/manual/en/function.date-default-timezone-set.php)
* e.g. `UTC`, `Europe/Berlin` or `America/Chicago`.
* Refer to the [php manual](http://www.php.net/manual/en/timezones.php) for available timezones.
* This can also be an IntlTimeZone or a DateTimeZone object.
* If not set, [[\yii\base\Application::timezone]] will be used.
*/
public
$timeZone
;
/**
* @var string the default format string to be used to format a date.
* This can be "short", "medium", "long", or "full", which represents a preset format of different lengths.
* It can also be a custom format as specified in the [ICU manual](http://userguide.icu-project.org/formatparse/datetime).
...
...
@@ -98,9 +89,6 @@ class Formatter extends \yii\base\Formatter
if
(
$this
->
locale
===
null
)
{
$this
->
locale
=
Yii
::
$app
->
language
;
}
if
(
$this
->
timeZone
===
null
)
{
$this
->
timeZone
=
Yii
::
$app
->
timeZone
;
}
if
(
$this
->
decimalSeparator
===
null
||
$this
->
thousandSeparator
===
null
)
{
$formatter
=
new
NumberFormatter
(
$this
->
locale
,
NumberFormatter
::
DECIMAL
);
if
(
$this
->
decimalSeparator
===
null
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment