javascript - 收集数字并将其转换为 AngularJS 中的日期

标签 javascript html angularjs datetime

我在 AngularJS 中有 3 个范围,一个代表年份,一个代表月份,一个代表天,来自 3 个输入框。我想将它们合并为日期,以下代码正确插入日期,但添加了 22:00:00,如 2019-06-01 22:00:00.000。 如何只插入日期而不插入时间

HTML

<div class="col-md-1">
    <div class="form-group has-error">
        <label class="title_lable">Year:</label>
        <input id="code" type="number" class="form-control input-sm"
               ng-model="year">
    </div>
</div>
<div class="col-md-2">
    <div class="form-group has-error">
        <label class="title_lable">Latin Description:</label>
        <input type="text" class="form-control input-sm"
               ng-model="latindesc">
    </div>
</div>
<div class="col-md-2">
    <div class="form-group">
        <label class="title_lable">Local Description:</label>
        <input type="text" class="form-control input-sm"
               ng-model="localdesc">
    </div>
</div>
<div class="col-md-1">
    <div class="form-group">
        <label class="title_lable">Month:</label>
        <select ng-show="lang==1" class="form-control input-sm"
                ng-model="month"
                ng-options="m.mnthid as m.mnthanm for m in months">
        </select>
        <select ng-show="lang==0" class="form-control input-sm"
                ng-model="month"
                ng-options="m.mnthid as m.mnthenm for m in months">
        </select>
    </div>
</div>
<div class="col-md-1">
    <div class="form-group">
        <label class="title_lable">Day:</label>
        <input type="number" class="form-control input-sm" ng-model="day">
    </div>
</div>

Angular

var dFrom = new Date($scope.month + '/' + ($scope.day + 1) + '/' + $scope.year );
        var days = $scope.ndays;
        console.log(days);
        var todate = new Date($scope.month + '/' + ($scope.day +1) + '/' + $scope.year);
        todate = addDays(todate, days - 1);
        console.log(todate);

        var vacation = {
            Sys_Key: $scope.syskey,
            Vac_Code: $scope.code,
            L_Desc: $scope.latindesc,
            A_Desc: $scope.localdesc,
            V_Start_Date: $scope.day,
            V_Month: $scope.month,
            V_Days_Count: $scope.ndays,
            V_Year: $scope.year,
            From_Date: dFrom,
            To_Date: todate
        }

function addDays(startDate, numberOfDays) {
    var returnDate = new Date(
        startDate.getFullYear(),
        startDate.getMonth(),
        startDate.getDate() + numberOfDays,
        startDate.getHours(),
        startDate.getMinutes(),
        startDate.getSeconds()
    );
    return returnDate;
} 

最佳答案

the code insert the date correctly but with 22:00:00 added to it like 2019-06-01 22:00:00.000. How to insert the date only without time

在幕后,日期被解析为 00:00 小时 UTC 时间。标准 .toString 方法将其显示为本地时间。

var d = new Date("2019-06-01");

console.log(d.toString());

console.log(d.toISOString());

如果您希望将其解析为本地时间,请附加“T00:00”

var d = new Date("2019-06-01T00:00");

console.log(d.toString());

console.log(d.toISOString());

当时区偏移不存在时,仅日期形式将解释为 UTC 时间,而日期时间形式将解释为本地时间。

欲了解更多信息,请参阅

关于javascript - 收集数字并将其转换为 AngularJS 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56341791/

相关文章:

javascript - 迭代嵌套对象时修改对象键

javascript - Jasmine - 模拟 spy On.and.callFake http成功错误

javascript - 启用垂直滚动时如何添加填充

javascript - 理解 JavaScript 中的原型(prototype)或 Map.prototype

javascript - 我可以在 Android 上的 Chrome 上获取绝对设备方向吗?

javascript - 在javascript中将字符的位置放入数组的简单方法

java - 我们如何为循环创建的多个文本框指定相同的名称

html - CSS - 在不知道它的高度的情况下绝对定位元素在父元素的末尾?

html - 如何在 CSS 中创建彼此相邻的多边形形状

javascript - Sweet Alert后的文件上传窗口