Разделение даты по JavaScript - PullRequest
0 голосов
/ 13 февраля 2012
Date.prototype.copy = function () {
  return new Date(this.getTime());
};


Date.prototype.msPERDAY = 1000 * 60 * 60 * 24;
Date.prototype.msPERHOUR = 1000 * 60 * 60; 

     Date.prototype.getDaysBetween = function(d) {

  d = d.copy();

  var diff = d.getTime() - this.getTime();

  var days = Math.floor((diff)/this.msPERDAY);
  diff = (diff)/this.msPERDAY;
  var hours = Math.floor((diff)/this.msPERHOUR);
  alert(hours);
  var time = new Array(days , hours);
  return time;
};

В этой функции я получаю дату будущего и использую ее на текущую дату

future.date - current.date = разница в миллисекундах

здесь я получаю разницу между днямино я не могу получить часы, минуты и секунды

можете ли вы сказать мне, как мне нужно разделить после того, как я получу разницу между днями

это javascript, извините за глупый вопрос, нопроблема для меня: (

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012
0 голосов
/ 13 февраля 2012

Для часов вы можете просто получить десятичную часть результата diff = (diff)/this.msPERDAY и умножить ее на 24. Попробуйте следующее (также для jsfiddle: http://jsfiddle.net/ZLUqB/):

Date.prototype.copy = function () {
  return new Date(this.getTime());
};


Date.prototype.msPERDAY = 1000 * 60 * 60 * 24;
Date.prototype.msPERHOUR = 1000 * 60 * 60; 

Date.prototype.getDaysBetween = function(d) {

    d = d.copy();

    var diff = d.getTime() - this.getTime();
    console.log(diff);

    var days = Math.floor((diff)/this.msPERDAY);
    console.log(days);

    diff = (diff)/this.msPERDAY % 1; // get only the decimal part of this
    console.log(diff);

    var hours = diff * 24; // multiply the decimal part by 24 to get hours
    console.log(hours );

    var time = new Array(days , hours);
    return time;
};

var d = new Date('02/01/2012 05:00');
d.getDaysBetween(new Date('02/12/2012 13:00'));
...