62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
/**
|
|
* angular-strap
|
|
* @version v2.2.1 - 2015-03-10
|
|
* @link http://mgcrea.github.io/angular-strap
|
|
* @author Olivier Louvignes (olivier@mg-crea.com)
|
|
* @license MIT License, http://www.opensource.org/licenses/MIT
|
|
*/
|
|
'use strict';
|
|
|
|
angular.module('mgcrea.ngStrap.helpers.dateFormatter', [])
|
|
|
|
.service('$dateFormatter', ["$locale", "dateFilter", function($locale, dateFilter) {
|
|
|
|
// The unused `lang` arguments are on purpose. The default implementation does not
|
|
// use them and it always uses the locale loaded into the `$locale` service.
|
|
// Custom implementations might use it, thus allowing different directives to
|
|
// have different languages.
|
|
|
|
this.getDefaultLocale = function() {
|
|
return $locale.id;
|
|
};
|
|
|
|
// Format is either a data format name, e.g. "shortTime" or "fullDate", or a date format
|
|
// Return either the corresponding date format or the given date format.
|
|
this.getDatetimeFormat = function(format, lang) {
|
|
return $locale.DATETIME_FORMATS[format] || format;
|
|
};
|
|
|
|
this.weekdaysShort = function(lang) {
|
|
return $locale.DATETIME_FORMATS.SHORTDAY;
|
|
};
|
|
|
|
function splitTimeFormat(format) {
|
|
return /(h+)([:\.])?(m+)[ ]?(a?)/i.exec(format).slice(1);
|
|
}
|
|
|
|
// h:mm a => h
|
|
this.hoursFormat = function(timeFormat) {
|
|
return splitTimeFormat(timeFormat)[0];
|
|
};
|
|
|
|
// h:mm a => mm
|
|
this.minutesFormat = function(timeFormat) {
|
|
return splitTimeFormat(timeFormat)[2];
|
|
};
|
|
|
|
// h:mm a => :
|
|
this.timeSeparator = function(timeFormat) {
|
|
return splitTimeFormat(timeFormat)[1];
|
|
};
|
|
|
|
// h:mm a => true, H.mm => false
|
|
this.showAM = function(timeFormat) {
|
|
return !!splitTimeFormat(timeFormat)[3];
|
|
};
|
|
|
|
this.formatDate = function(date, format, lang, timezone){
|
|
return dateFilter(date, format, timezone);
|
|
};
|
|
|
|
}]);
|