Sha256: f424d3d9d00f7b7442e6c355bbf5c3b1644f04d4d26c9128dd2e1c2d448c44ce
Contents?: true
Size: 1.53 KB
Versions: 4
Compression:
Stored size: 1.53 KB
Contents
/* --- script: Date.js description: Work with dates like a boss license: Public domain (http://unlicense.org). authors: Yaroslaff Fedin requires: - LSD.Mixin - More/Date provides: - LSD.Mixin.Date ... */ LSD.Mixin.Date = new Class({ options: { date: { interval: 'month', format: '%b-%d-%Y' } }, setDate: function(date) { if (date && !date.getDate) { var source = date; date = this.parseDate(date); } if (!date) return; if (source) this.dateSource = source; else if (this.dateSource) delete this.dateSource; this.date = date; this.fireEvent('setDate', [date, source]) }, formatDate: function(date) { return date.format(this.options.date.format) }, getDate: function() { if (this.date) return this.date; if (this.getRawDate) { var raw = this.getRawDate(); if (raw) return this.parseDate(raw); } return this.getDefaultDate(); }, getDefaultDate: function() { return new Date; }, parseDate: function(input) { var date = Date.parse(input); if (date.isValid()) return date; }, increment: function(number, interval) { number = number.toInt ? number.toInt() : 1; this.setDate(this.getDate().clone().increment(interval || this.options.date.interval, number)) }, decrement: function(number, interval) { number = number.toInt ? number.toInt() : 1; this.setDate(this.getDate().clone().decrement(interval || this.options.date.interval, number)) } }); LSD.Behavior.define(':date', 'date');
Version data entries
4 entries across 4 versions & 1 rubygems