javascript - 如何使用 JS 将时间设置为 T00 :00:00. 000Z

标签 javascript angularjs datetime angular-ui

我正在使用 ui-calendar,我试图在没有时间的情况下传递事件。现在我得到的日期和时间是这样的。

var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var WOD = new Date(y,m,d);

现在我还有一个功能,可以将 WOD 更改为在日历的月 View 中选择的日期,如下所示。

$scope.alertOnDayClick = function(d){
    WOD = d;
};

如果我点击一天(本例为 2015 年 1 月 22 日)WOD = "2015-01-22T00:00:00.000Z" <--这就是我想要的并且效果很好。

但是如果我默认不选择某一天WOD = "2015-01-04T05:00:00.000Z"

我想让我的默认日期包含时间 T00:00:00.000Z。

我已经尝试过

var WOD = new Date(y,m,d,0,0,0,0)
var WOD = date.UTF(y,m,d)
var WOD = date.UTF(y,m,d,0,0,0,0)

我还尝试将默认时间设置为空 我读了这个问题 Dealing with DateTime format for international application 但我不知道这是否适用,而且老实说我并没有完全理解如何实现它

感谢所有帮助。

更新:

读完后 What is the best way to initialize a JavaScript Date to midnight?

我试过了

var WOD = new Date();
    WOD.setHours(0,0,0,0);

但它仍然返回“2015-01-04T05:00:00.000Z”

这使得事件存储在 1 月 4 日中午 12 点

更新:

我尝试过:

$scope.WOD = new Date();
$scope.WOD.setHours(0, 0, 0, 0);
$scope.dangerMessage = ($scope.WOD);

{{dangerMessage}} = "2015-01-04T05:00:00.000Z"

使用完整 Controller 更新

var myAppModule = angular.module('MyApp', ['ui.calendar']);
myAppModule.controller('MyController', function($scope,$compile,uiCalendarConfig) {
    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();
    $scope.WOD = new Date();
    $scope.WOD.setHours(0, 0, 0, 0);

    $scope.events = [
        {title: 'All Day Event', start: new Date(y, m, 1)},
        {title: 'Long Event', start: new Date(y, m, d), end: new Date(y, m, d)},
        {id: 999, title: 'Repeating Event', start: new Date(y, m, d - 3, 16, 0), allDay: false},
        {id: 999, title: 'Repeating Event', start: new Date(y, m, d + 4, 16, 0), allDay: false},
        {
            title: 'Birthday Party',
            start: new Date(y, m, d + 1, 19, 0),
            end: new Date(y, m, d + 1, 22, 30),
            allDay: false
        },
        {title: 'Click for Google', start: new Date(y, m, 28), end: new Date(y, m, 29), url: 'http://google.com/'}
        ];

    $scope.addEvent = function() {
        if($scope.WOD === ''){
            $scope.dangerMessage = ('Please Choose a Date');
        }else{
            $scope.events.push({
                title: 'Open Sesame',
                start: $scope.WOD,
                end: $scope.WOD,
                className: ['openSesame']
            });
        }
        $scope.dangerMessage = ($scope.WOD);
    };

    $scope.alertOnEventClick = function( date ){
        $scope.alertMessage = (date.title + ' was clicked ');
    };
    $scope.alertOnDayClick = function(d){
        uiCalendarConfig.calendars['CalDayView'].fullCalendar('gotoDate', d);
        WOD = d;
        $scope.dangerMessage = (WOD);
    };
    /* remove event */
    $scope.remove = function(index) {
        $scope.events.splice(index,1);
    };

        /* config object */
    $scope.uiDayConfig = {
        calendar:{
            height: 450,
            editable: true,
            header:{
                left: 'today',
                center: 'title',
                right: 'prev,next'
            },
            timeFormat: '',
            defaultView: 'basicDay',
            defaultDate: new Date(),
            eventDrop: $scope.alertOnDrop,
            eventResize: $scope.alertOnResize,
            eventClick: $scope.alertOnEventClick,
            eventRender: $scope.eventRender
        }
    };
    $scope.uiMonthConfig = {
        calendar:{
            height: 450,
            editable: true,
            header:{
                left: 'prev,next',
                center: 'title',
                right: 'basicWeek'
            },
            dayClick: $scope.alertOnDayClick,
            //eventDrop: $scope.alertOnDrop,
            //eventResize: $scope.alertOnResize,
            eventClick: $scope.alertOnEventClick
            //eventRender: $scope.eventRender
        }
    };

    $scope.eventSources = [$scope.events];

});//END MYCONTROLLER

最佳答案

我认为您的时区时间为+5 小时。

var WOD = new Date();
    WOD.setHours(0,0,0,0);// Sun Jan 04 2015 00:00:00 GMT-0600 (CST)

var WOD = new Date();
    WOD.setUTCHours(0,0,0,0);// Sat Jan 03 2015 18:00:00 GMT-0600 (CST)

您机器的设置存在所有差异。检查“时区”的设置。

关于javascript - 如何使用 JS 将时间设置为 T00 :00:00. 000Z,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27769608/

相关文章:

javascript - 如何在 AngularJS Forms 的 `<options>` 元素中改变 `<select>`

c# - Nullable-如何在 C# 中的 DateTime 类型中仅比较日期而不比较时间?

javascript - JavaScript 执行时序中的奇怪行为

javascript - 如何在React中引用pdf.js库?

javascript - 当没有任何重复项时,ng-repeat 重复问题

sql - 如何从 Pandas 表中的先前加载中选择大于文件中存储的最大时间戳的记录

android - 在 Android 中将日期转换为月份和年份

javascript - 如何将 API 作为 $.Deferred() 的一部分进行轮询

javascript - 获取剑道网格中所选项目的页面

javascript - Bootstrap 输入组和 AngularJS 动态内容