javascript - Angularjs 日期时间选择器时区

标签 javascript angularjs json datetime angular-material

我正在使用 angular-material-datetimepicker在我的模式中输入日期和时间。但是,angular 在 json 中发送所有数据服务器端,并将时间更改为 UTC。在重新加载我的客户端时,显示了我不想要的 UTC 时间。如何让客户端显示我的本地时间(在我的例子中是 GMT +2)?如何只操作 json 字符串的日期部分?我在其他类似的 SO q 和论坛上看到了令人困惑的解决方案。谢谢。

关于模态 html

        <div class="time">
           <md-input-container class="md-input-has-placeholder start_time">
              <label>Start Date/Time</label>
              <input mdc-datetime-picker="" date="true" time="true" type="text" id="datetime" placeholder="Start" min-date="date" format="DD/MM/YYYY hh:mm" ng-model="Project.StartAt" class=" md-input">
           </md-input-container>

           <md-input-container class="md-input-has-placeholder endtime">
              <label>End Date/Time</label>
              <input mdc-datetime-picker="" date="true" time="true" type="text" id="datetime" placeholder="End" min-date="date" format="DD/MM/YYYY hh:mm" ng-model="Project.EndAt" class=" md-input">
           </md-input-container>
        </div>

Angular

$scope.editProject = function(data) {
        $scope.showSelected = true;
        $scope.SelectedProject = data;
        var fromDate = moment(data.start).format('DD/MM/YYYY LT');
        var endDate  = moment(data.end).format('DD/MM/YYYY LT');

        $scope.Project = { 
            ProjectID : data.projectID, 
            Client : data.client,
            Title : data.title,
            Description: data.description,
            Employees: data.employees,
            StartAt : fromDate,
            EndAt : endDate,
            IsFullDay : false
        }
        $scope.ShowModal()
    },

$scope.ShowModal = function(){
        $scope.option = {
            templateUrl: 'modalContent.html',
            controller: 'modalController',
            controllerAs: '$ctrl',
            backdrop: 'static',
            resolve: {
                Project : function () { 
                    return $scope.Project;
                },
                SelectedProject : function () { 
                    return $scope.SelectedProject;
                },
                projects: function () {
                    return $ctrl.projects;
                }
            }
        };

    var modal = $uibModal.open($scope.option);
        modal.result.then(function (data) { 

           $scope.Project = data.project; 
            switch (data.operation){
               case 'Save':
                    //Save here
                    $http({
                        method: 'POST',
                        url: '/',
                        data: $scope.Project
                    }).then(function(response){
                        if(response.data.status){                                
                            $scope.projects.push(Project);
                        }
                    })
                    break;

最佳答案

你可以像这样应用过滤器:

$scope.yourDate= $filter('date')(new Date($scope.yourDate), 'yyyy-MM-dd'); // Try different format as per your requirement

Don't forget to inject dependency $filter.

关于javascript - Angularjs 日期时间选择器时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40926066/

相关文章:

angularjs - 当在IE11中通过计算机名称访问站点时,显示“Object doesn'支持属性或方法'querySelector'

javascript - 从对象数组中计算特定键值

json - 配置单元:解析 JSON 包含\"

python - 如何使用 Python 从 .aspx 页面检索数据?

javascript - 在 JavaScript 中从字符串中解码混合 ASCII 代码

javascript - iOS WebView 保存图像而不下载它

angularjs - 使用 Bower 安装 ng-table

sql - 使用 JSON_MODIFY 将多个对象附加到现有数组中

javascript - 重置特定表格中的值,这些值是在单击重置按钮时编辑的

javascript - 使用javascript动态显示url链接