简体   繁体   English

Web API未从AngularJS接收日期

[英]web api not receiving date from angularjs

Hi I am developing web application in angularjs. 嗨,我正在用angularjs开发Web应用程序。 I have one date in angularjs for example 13-10-2017. 我在angularjs中有一个约会,例如13-10-2017。 In c# i have below field 在C#中我有以下字段

 public DateTime LicenseExpiryDate { get; set; }

When i send 13-10-2017 in ajax request,LicenseExpiryDate accepts as 0001-01-01. 当我在ajax请求中发送13-10-2017时,LicenseExpiryDate接受为0001-01-01。 May i know how to fix this? 我可以知道如何解决这个问题吗? I can see my angular date is in dd-mm-yy format and c# date default format is yyyy-mm-dd. 我可以看到我的日期是dd-mm-yy格式,而c#日期默认格式是yyyy-mm-dd。 i tried to convert it to yyyy-mm-dd as below 我试图将其转换为yyyy-mm-dd如下

 function formatDateDOsetyymmdd(date) {
                debugger;
                var d = new Date(date),
                    month = '' + (d.getMonth() + 1),
                    day = '' + d.getDate(),
                    year = d.getFullYear();

                if (month.length < 2) month = '0' + month;
                if (day.length < 2) day = '0' + day;

                return [year,month, day].join('-');
            }

and this returns NaN-NaN-NaN Any help would be appreciated. 并返回NaN-NaN-NaN任何帮助将不胜感激。 Thank you. 谢谢。

You are getting a string in form dd-mm-yyyy on input, what you want to do is turn that string into three numbers, and use those in the new Date call 您将在输入中以dd-mm-yyyy形式获取一个字符串,您要做的是将该字符串转换为三个数字,并在new Date调用中使用这些数字

 function formatDateDOsetyymmdd(date) { date = date.split('-').map(Number); var d = new Date(date[2], date[1] - 1, date[0]), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear(); if (month.length < 2) month = '0' + month; if (day.length < 2) day = '0' + day; return [year,month, day].join('-'); } console.log(formatDateDOsetyymmdd('13-10-2017')); 

您可以使用moment.js,如果您无法在JavaScript中执行此操作,则可以使用它。

https://momentjs.com/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM