如何解决为 ngx-bootstrap DateTimePicker 从 C# API 获取日期到 Angular
为了使用 Angular 的 ngx-bootstrap datepicker 禁用日历天我在 C# 上有一个控制器
public List<DateTime> DisabledDays(int carId)
{
var disabledDates = new List<DateTime>();
var result = GetAll();
var startResult = _rentalDal.GetAll().Where(x => x.CarId == carId).Select(x => x.RentDate).ToList();
var endResult = _rentalDal.GetAll().Where(x => x.CarId == carId).Select(x => x.ReturnDate).ToList();
for (int i = 0; i < result.Data.Count; i++)
{
//for (var disDate = startResult[i]; disDate <= endResult[i]; disDate = DateTime.Parse(disDate.AddDays(1).ToString("dd/MM/yyyy")))
for (var disDate = startResult[i]; disDate <= endResult[i]; disDate = disDate.AddDays(1))
{
disabledDates.Add(DateTime.Parse(disDate.ToString("dd/MM/yyyy")));
//disabledDates.Add(Convert.ToDateTime(disDate)).ToString("MM-dd-yyyy");
//disabledDatesString.Add(dt.(ToString("d MMM YY")));
}
}
return disabledDates;
}
它工作正常,但格式应该像 YYYY-MM-DD 我尝试了一些东西,但无法为 Angular 提供所需的输出。我的输出是
"2021-01-01T00:00:00","2021-01-02T00:00:00","2021-01-03T00:00:00","2021-01-04T00:00:00","2021-01-05T00:00:00","2021-01-06T00:00:00","2021-01-07T00:00:00","2021-01-08T00:00:00","2021-01-09T00:00:00","2021-01-10T00:00:00",
angulars 方法在我手动放置时有效,但是当我尝试使用其接收数据的函数获取它时,如上。
disabledDates: Date[];
this.disabledDates = [
new Date('2021-03-20'),new Date('2021-03-10'),new Date('2021-03-11'),];
getDisabledDates(carId:number){
this.rentalService.getDisabledDates(carId).subscribe(response=>{
this.disabledDates= response
console.log(response)
})
有没有办法让我的日期格式像 YYYY-MM-DD 这样的 disabledDates 手动提要?第二个是这个新日期,只是通过 for 或 for each 循环添加
解决方法
由于您的 OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics 620 (KBL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.0.8
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.0.8
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.0.8
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
和 startResult
变量是 endResult
,因此修改后的方法肯定适合您。
因此,您不需要将 List<DateTime>
而不是 List<string>
作为方法的返回类型。
因为在您的 JSON 响应中,List<DateTime>
和 DateTime
都是 string
。
解决方案:
string
,
我喜欢这项服务是谁转换了日期。在 this SO 中将日期从字符串转换为 ngbDate,与在日期对象中转换相同 - 想象您的属性是“日期”
const Search = new Promise((resolve,reject) => {
function onResolved() {
console.log('completed');
}
function onRejected(msg) {
console.error(msg);
}
window.search= window.search|| function () { (window.search.q = window.search.q || []).push(arguments) };
window.search('config',{
category: "web",onComplete: onResolved,onError: onRejected,query: "example",});
resolve(onResolved());
reject(onRejected());
});
因此,在您的组件中,您始终使用日期对象
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。