Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * schedule_content.js - Schedule content display with jQuery
- *
- * Author: Brian Katzung, briank@kappacs.com
- *
- * <tag data-display-starting='y-m-d h:m:s'
- * data-display-ending='y-m-d h:m:s'>content</tag>
- * will display starting at starting (default: start of time)
- * and ending at ending (default: end of time), *GMT*.
- *
- * Any non-digit sequence between elements will work, but this syntax is
- * recommended for compatibility with any potential future enhancements.
- * Everything after the year is optional. 1 <= month <= 12; 0 <= hour <= 23
- *
- * Call display_scheduled_content([jQuery]) to activate/update.
- *
- * Version 1.0.0 / 2019-12-11
- */
- function display_scheduled_content ($ = window.jQuery) {
- function get_date (str) {
- var parts = str.split(/\D+/).map(function (p) { return parseInt(p); }).concat([0, 0, 0, 0, 0]);
- return new Date(parts[0], (parts[1] || 1) - 1, parts[2] || 1, parts[3], parts[4], parts[5]);
- }
- var now = new Date();
- $('[data-display-starting],[data-display-ending]').each(function () {
- var $this = $(this), display = true;
- var starting = $this.attr('data-display-starting');
- var ending = $this.attr('data-display-ending');
- if (starting && now < get_date(starting)) display = false;
- if (display && ending && now >= get_date(ending)) display = false;
- display ? $this.show() : $this.hide();
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement