当日期为空时,如何在日期输入字段中显示设置为"mm/dd/yyyy"而不是"1/1/0001"的占位符?


我的数据库中有一列,类型为datetime

,可能为空,也可能不为空。前端表单应该显示数据库中的日期(如果有(,如果它是空的,它应该显示mm/dd/yyyy而不是1/1/0001当数据库中有空值时那样。所以基本上如果数据库中有一个日期,它应该显示日期,如果它是空的,它应该返回默认的日期选择器,带有"mm/dd/yyyy"或"选择日期"。

我的js文件看起来像:

$scope.Changes = function (product, value) {    
var input =
{
ProductId: product.ProductId,
isActive: value,
graceEndDate: product.graceEndDate
}
AdService.updateProducts(input).then(function (response) {
if (response && response.data && response.data.isSuccessful === true) {
DealService.showSuccess('Update successful');
} else {
DealService.showError('error');
}
product.isUpdating = false;
$scope.loadProducts();
}, function (error) {
product.isUpdating = false;
$scope.loadProducts();
DealService.showError(error);
});    
}
};

我的 HTML 看起来像这样:

<td ng-if="product.isActive === true">
<quick-datepicker type="date" style="max-width: 175px"
placeholder="mm/dd/yyyy" 
ng-model="product.EndDate"
disable-timepicker="true"
ng-change="saveChanges(product, true)">
</quick-datepicker> 
</td>

我不认为你的问题在于占位符。我敢打赌,您的前端接收的数据product.EndDate设置为 1/1/0001,因为DateTime类型设置为默认值时为 null。

根据您的后端语言,您可以将类型设置为可为 null以解决此问题

如果使用了 nqQuickDate 库,则可以轻松地使用 placeHolder 属性来处理空值。 但是仔细检查从 API 获取的空值格式是否正确,有时空值以字符串空的形式出现,例如:日期:'null'

最新更新