简体   繁体   English

javascript:如何将文本字段中输入的日期转换为 Javascript 中的日期格式

[英]javascript: How to convert dates entered in text fields to Date Format in Javascript

I have 2 text fields txtDateFrom and txtDateTo .我有 2 个文本字段txtDateFromtxtDateTo How can I convert the values from these fields to Date format, so I can calculate the number of days between DateFrom and DateTo?如何将这些字段中的值转换为日期格式,以便计算 DateFrom 和 DateTo 之间的天数?

I'm using the datepicker and when dates are selected they are in the mm\\dd\\yyyy format我正在使用datepicker,选择日期时,它们处于mm\\dd\\yyyy格式

This is my function:这是我的功能:

function ValidateDateDiff(sender, args) {
     var dateFrom = $('#cphBody_ExcessAuth_txtDateFrom').val();
     var dateTo = $('#cphBody_ExcessAuth_txtDateTo').val(); 

     var dateDiff = dateFrom - dateTo;
}

you could using jqueryUI.你可以使用 jqueryUI。

$("#datepicker").datepicker.parseDate( "mm\dd\yyyy", "09\20\2016" );

See this page for details: http://api.jqueryui.com/datepicker/有关详细信息,请参阅此页面: http : //api.jqueryui.com/datepicker/

Since you're not answering questions I just guessed..既然你不回答问题,我只是猜测..

var date = "03/15/1997";
var parts = date.split("/");
var date = new Date(parts[2]-1, parts[1], parts[0]);
alert(date.toLocaleFormat());

Demo: https://jsfiddle.net/e6mp0cgy/演示: https : //jsfiddle.net/e6mp0cgy/

As noted in the comments if you're using jQuery you can get the date object directly from jQuery.如评论中所述,如果您使用 jQuery,则可以直接从 jQuery 获取日期对象。 Otherwise check out the docs for more info.否则,请查看文档以获取更多信息。

I would use Moment to parse the values from the fields:我会使用Moment来解析字段中的值:

var dateFrom = moment($('#cphBody_ExcessAuth_txtDateFrom').val(), 'MM/DD/YYYY');
var dateTo =  moment($('#cphBody_ExcessAuth_txtDateTo').val(), 'MM/DD/YYYY'); 

var dateDiff = dateTo.diff(dateFrom, 'days');
function ValidateDateDiff(sender, args) {
     /*
     var dateFrom = $('#cphBody_ExcessAuth_txtDateFrom').val();
     var dateTo = $('#cphBody_ExcessAuth_txtDateTo').val();
     */

     // for test
     var dateFrom = "01\\01\\2016"; // date in format mm\dd\yyyy
     var dateTo = "01\\05\\2016"; // date in format mm\dd\yyyy

     var dateFromSplit = dateFrom.split("\\");
     var dateToSplit = dateTo.split("\\");
     var dateFromDate = new Date(dateFromSplit[2]+"-"+dateFromSplit[0]+"-"+dateFromSplit[1]);
     var dateToDate = new Date(dateToSplit[2]+"-"+dateToSplit[0]+"-"+dateToSplit[1]);
     var timeDiff = Math.abs(dateToDate.getTime() - dateFromDate.getTime());
     var daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24)); // days difference
     return daysDiff;
}

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

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