views:

22

answers:

1

If I have a tag:

<span class="utctime">2010-01-01 11:30 PM</span>

I would like a jquery script or plug in to convert every utctime class to the current user's browser local time. I would prefer to find this before writing one.

A: 

Ok, so I created one that does it:

/*
    Note: this requires that the JQuery-DateFormat plugin (available here) be loaded first
    http://plugins.jquery.com/project/jquery-dateFormat
*/

(function ($) {
    $.fn.localTimeFromUTC = function (format) {

        return this.each(function () {

            // get time offset from browser
            var currentDate = new Date();
            var offset = -(currentDate.getTimezoneOffset() / 60);

            // get provided date
            var tagText = $(this).html();
            var givenDate = new Date(tagText);

            // apply offset
            var hours = givenDate.getHours();
            hours += offset;
            givenDate.setHours(hours);

            // format the date
            var localDateString = $.format.date(givenDate, format);
            $(this).html(localDateString);
        });
    };
})(jQuery);

Usage:

    <span class="utcdate">2/5/2010 10:30 PM</span>

    $('.utcdate').localTimeFromUTC('MM/dd/yyyy hh:mm a');
CodeGrue