【问题标题】:how do I set my time to T00:00:00.000Z with JS如何使用 JS 将时间设置为 T00:00:00.000Z
【发布时间】:2015-03-02 09:43:29
【问题描述】:

我正在使用 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 更改为在日历的月份视图中选择的日期。

$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"

使用完整控制器更新

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

【问题讨论】:

标签: javascript angularjs datetime angular-ui


【解决方案1】:

请看下面的演示;

var app = angular.module('app', []);

app.controller('firstCtrl', function($scope) {

  $scope.date = new Date();

  $scope.date.setHours(0, 0, 0, 0);

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="app">
  <div ng-controller="firstCtrl">
    {{date}}
  </div>
</body>

【讨论】:

  • @FPcond 更改您的日期看起来有些不同,您能告诉我们您的所有控制器代码吗?
  • 是的,编辑问题 1 秒。我会使用 plunker,但 ui-calendar 有很多子依赖项。
  • 你可以看到我当前的工作是将 WOD 设置为 null 并使用 if 语句让用户选择一个日期
  • @FPcond ...这很奇怪,请看这里jsbin.com/lagowicika/1/edit?html,js,output我有 2015-01-04T00:00:00.000Z
  • 我现在有 jsbin 并且它仍然是 2015-01-04T05:00:00.000Z postimg.org/image/p1qef8j7l
【解决方案2】:

我觉得你在时区有 +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)

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

【讨论】:

    猜你喜欢
    • 2015-05-11
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 2021-03-06
    • 1970-01-01
    相关资源
    最近更新 更多