Angular UI DatePicker adjusting for timezone

前端 未结 6 605
忘了有多久
忘了有多久 2020-12-08 04:19

I have a date stored as a Date in SQL Server. The date shows 4/24/2014 when I query in SQL. That is correct. The date is correctly brought over to the client side in UTC. To

6条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-08 05:03

    Hope below directive is useful to you

    app.directive('datetimepickerNeutralTimezone', function () {
        return {
            restrict: 'A',
            priority: 1,
            require: 'ngModel',
            link: function (scope, element, attrs, ctrl) {
                ctrl.$formatters.push(function (value) {
                    if (typeof value === "undefined") {
                        var date = new Date();
                        //date = new Date(date.getTime() + (60000 * date.getTimezoneOffset()));
                        return date;
                    } else {
                        var date = new Date(Date.parse(value));
                        //date = new Date(date.getTime() + (60000 * date.getTimezoneOffset()));
                        return date;
                    }
                });
    
                ctrl.$parsers.push(function (value) {
                    var date = new Date(value.getTime() - (60000 * value.getTimezoneOffset()));
                    return date;
                });
            }
        };
    });
    
    app.directive('timepickerNeutralTimezone', function () {
        return {
            restrict: 'A',
            priority: 1,
            require: 'ngModel',
            link: function (scope, element, attrs, ctrl) {
                ctrl.$formatters.push(function (value) {
                    if (typeof value === "undefined") {
                    } else {
                        var date = new Date(Date.parse(value));
                        date = new Date(date.getTime() + (60000 * date.getTimezoneOffset()));
                        return date;
                    }
                });
    
                ctrl.$parsers.push(function (value) {
                    var date = new Date(value.getTime() - (60000 * value.getTimezoneOffset()));
                    return date;
                });
            }
        };
    });
    

提交回复
热议问题