gpt4 book ai didi

javascript - 如何以 M/d/yy 格式正确传递日期的 DatePicker 字符串表示形式

转载 作者:行者123 更新时间:2023-12-02 21:30:36 26 4
gpt4 key购买 nike

我是 Angular 新手,我正在尝试解决下一个问题:我有这段代码

<div class="col-xs-6">
<label for="from">Date from*</label>
<div ng-controller="DatePickerCtrl" class="form-group"
ng-class="{'has-error': formErrors.dateFrom}">
<p class="input-group">
<input type="text" class="form-control" id="from" name="from"
placeholder="{{dateOptions.format}}"
datepicker-options="dateOptions"
datepicker-popup="{{dateOptions.format}}"
datepicker-append-to-body="true"
on-open-focus="false"
ng-model="formData.dateFrom"
ng-change="formErrors.dateFrom = isDateAfter(formData.dateFrom, formData.dateTo)"
required
is-open="opened" close-text="Close" aria-describedby="from"
/>
<span class="input-group-btn">
<button class="btn btn-default" ng-click="toggle($event)">
<i class="glyphicon glyphicon-calendar"></i>
</button>
</span>
</p>
<div class="help-block" ng-class="{'has-error': formErrors.dateFrom.length}"
ng-bind="formErrors.dateFrom"></div>
</div>
</div>

enter image description here

我需要下一个功能 - 当我按下“生成”按钮时,我需要将一个新的 Date() 传递给 datapicker。所以我的报告应该在今天(当前日期)内创建一些报告。这就像一些自动化操作,我不想手动选择日期,只需单击“生成”按钮,然后将当前日期传递给数据选择器并显示在屏幕上。假设当前日期是 3/11/2020。然后我应该在 2020 年 3 月 11 日在屏幕上看到结果。但我总是负1天... enter image description here

我的数据选择器:

app.controller('DatePickerCtrl', ['$scope', '$filter', '$log',
function($scope, $filter, $log) {

init();

function init() {
$scope.opened = false;

$scope.toggle = function($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.opened = !$scope.opened;
};

$scope.dateOptions = {
format: 'M/d/yy',
startingDay: 1
};
}

$scope.isDateAfter = function(minDate, selectedDate) {
if (minDate && selectedDate) {
var fromDate = new Date(minDate);
var toDate = new Date(selectedDate);
if (dateAfter(fromDate, toDate)) {
return 'Invalid range. Date from is after date to';
}
}
return '';
};

function dateAfter(from, to) {
return from.getTime() > to.getTime();
}

}
]);

这就是我为日期选择器创建日期的方式:

 function getDate() {
let today = new Date;
let mm = today.getUTCMonth() + 1;
let dd = today.getUTCDate();
let yy = today.getUTCFullYear().toString().slice(2, 4);
return mm + '/' + dd + '/' + yy;
}

主要问题是日期选择器与我传递给它的当前日期相差一天!我只是将日期硬编码为“3/11/20”,而我在屏幕上看到日期“3/10/20”。无法解决这个问题((也许有人可以帮助我?提前致谢)

已解决:只有当我将完整格式日期传递给它时,日期选择器才能正常工作,例如 -> new Date();

最佳答案

您可以在 Angular 中使用默认的 DatePipe。

https://angular.io/api/common/DatePipe

或者您可以将日期分配给一个变量

`today = new Date()`

`<p>Today date is {{today | date: 'MM/dd/yy'}}</p>`

关于javascript - 如何以 M/d/yy 格式正确传递日期的 DatePicker 字符串表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60633160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com