Skip to content

Commit bf61c26

Browse files
committed
Parse date string, no need for timestamp, catch some problems
1 parent 4f96060 commit bf61c26

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

cs_date_formatter.module

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -250,15 +250,14 @@ function theme_cs_date_formatter_default($variables) {
250250

251251
$setting_name = $variables['field']['field_name'] . '-' . $variables['view_mode'];
252252
foreach ($values as $key => $value) {
253-
// @todo make fallback format configurable?
254-
$fallback = format_date($value, 'html_datetime');
253+
// Javascript will parse the date_string.
254+
$date_string = format_date($value, 'html_datetime');
255255
$attributes = array(
256-
'datetime' => $fallback,
256+
'datetime' => $date_string,
257257
'class' => array('cs-date-format'),
258-
'data-cs-timestamp' => $value,
259258
'data-cs-setting-name' => $setting_name,
260259
);
261-
$tags[] = '<time ' . backdrop_attributes($attributes) . '>' . $fallback . '</time>';
260+
$tags[] = '<time ' . backdrop_attributes($attributes) . '>' . $date_string . '</time>';
262261
}
263262
$markup = implode(' - ', $tags);
264263

js/cs-date-formatter.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,15 @@
1313
var csSettings = settings.csDateFormatter;
1414
$(context).find('.cs-date-format').once('cs-date-format').each(function () {
1515
var settingName = $(this).data('cs-setting-name');
16+
if (csSettings[settingName] === undefined) {
17+
return;
18+
}
1619
var fieldSetting = csSettings[settingName];
17-
var timestamp = $(this).data('cs-timestamp');
18-
var date = new Date(timestamp * 1000);
19-
20+
var dateString = $(this).attr('datetime');
21+
if (dateString === undefined) {
22+
return;
23+
}
24+
var date = new Date(dateString);
2025
if (fieldSetting['date_format'] == 'extended') {
2126
var options = fieldSetting['extended'];
2227
var dtFormat = new Intl.DateTimeFormat(uaLangs, options);

0 commit comments

Comments
 (0)