2016-05-04 2 views
0

Это моя разница в дате в расчетный код дней, и у меня есть формат дат пользователя yy-dd-mm, но я изменил свой формат на dd-mm-yy .so Я изменил формат кода, но он не работает должным образом. Пожалуйста, помогите с этим?Дата изменения формата в день расчетных дней

<script> 
var calculate = function() { 
    var from = document.getElementById("txtdate").value; 
    var fromdate = from.slice(3, 5); 
    fromdate = parseInt(fromdate); 
    var frommonth = from.slice(0, 2); 
    frommonth = parseInt(frommonth); 
    var fromyear = from.slice(6, 10); 
    fromyear = parseInt(fromyear); 
    var to = document.getElementById("txtdate1").value; 
    var todate = to.slice(3, 5); 
    todate = parseInt(todate); 
    var tomonth = to.slice(0, 2); 
    tomonth = parseInt(tomonth); 
    var toyear = to.slice(6, 10); 
    toyear = parseInt(toyear); 
    var oneDay = 24*60*60*1000; 
    var firstDate = new Date(fromyear,frommonth,fromdate); 
    var secondDate = new Date(toyear,tomonth,todate); 

    var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay))+1); 
    if (diffDays) 
     document.getElementById("result").value=diffDays; 

} 
</script> 
+0

Оформить заказную информацию о файле instant.js, это действительно здорово и поможет вам с добавлением/вычитанием/созданием diffs :) – PolishDeveloper

ответ

1

Вы должны использовать функцию.split ('-') для получения даты, месяца, года. Затем создайте новую дату (год, месяц, дату) как для, так и для. newTo-newFrom дает разницу дат между двумя датами в миллисекундах. Разделите эту разницу на 1000 * 3600 * 24, чтобы получить разницу дат в днях

var diffDays = Math.ceil(timeDiff/(1000 * 3600 * 24)); 

для справки см Get difference between 2 dates in javascript?

0
<html> 
<head> 
    <title></title>  
</head> 
<body> 
<input type="text" id="txtdate" value="16-04-2016" /> 
<input type="text" id="txtdate1" value="24-05-2016" /> 

<input type="text" id="result" value="" /> 

<!-- dd-mm-yyyy --> 
<script type="text/javascript"> 
var calculate = function() { 
    var from = document.getElementById("txtdate").value; 
    var to = document.getElementById("txtdate1").value;   
    document.getElementById("result").value= process(to,from)+' Days'; 
} 

function process(d1,d2){ 
var date1 = d1.split('-'); 
var date2 = d2.split('-'); 
var start = new Date(date1[2], +date1[1]-1, date1[0]); 
var end = new Date(date2[2], +date2[1]-1, date2[0]); 
return (start.getTime() - end.getTime())/(1000*60*60*24); 
} 

calculate(); 

</script> 
</body> 
</html> 

Fiddle

2

Поиск н Замените эти две строки кода :

var fromdate = from.slice(3, 5); 
var frommonth = from.slice(0, 2); 

TO:

var fromdate = from.slice(0, 2); 
var frommonth = from.slice(3, 5); 

Поиск и замена thest две линии:

var todate = to.slice(3, 5); 
var tomonth = to.slice(0, 2); 

TO:

var todate = to.slice(0, 2); 
var tomonth = to.slice(3, 5); 

Оставьте остальные строки, как они есть.

Смежные вопросы