Проверьте, если текущее время прошло AM / PM в Javascript - PullRequest
0 голосов
/ 01 октября 2018

Вот данное время:

11:20 AM
or 01:00 PM

Мне нужно проверить, прошло ли текущее время или нет, используя Javascript (без библиотеки)

Вот как я это сделал в Java:

    SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a", Locale.ENGLISH);
    String currentTime = sdf.format(new Date());
    currentTime = timeConverter(currentTime,24);

    Date date = new Date() ;
    SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm", 
    Locale.ENGLISH) ;
    dateFormat.format(date);

    if(dateFormat.parse(currentTime).after(dateFormat.parse(startTime24)))
                isClassComplete.setImageDrawable(progressIcon);

Помогите мне сделать это в Javascript.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Если у вас есть строка времени без даты, вы можете преобразовать время в общий знаменатель, скажем, в минуты, а затем сравнить его.Например,

/* Convert time string to minutes
 * @param {string} time: format hh:mm am/pm
 * @returns {number} time converted to minutes
*/
function timeToMins(time) {
  var b = time.split(/[:\s]/);
  return b[0]%12*60 + +b[1] + (/pm\s*$/i.test(time)? 720 : 0);
}

// E.g.
[['10 : 23pm','10:23am'],   // Tolerant of differing whitespace 
 ['12:12 am','12:12   pm'],
 ['12:12 pm','12:12 am   ']
].forEach(times => console.log(
    `${times[0]} < ${times[1]}? ${timeToMins(times[0]) < timeToMins(times[1])}`
  )
);

Хотя вышеприведенное несколько терпимо по отношению к различным пробелам, вы должны добавить проверку в строку, чтобы подтвердить формат перед обработкой и вернуть разумное сообщение, если это не требуемый формат.Вы также можете расширить его для поддержки дополнительных секунд и долей секунд.

0 голосов
/ 01 октября 2018

var a = new Date('1/10/2018 19:30')
var b = new Date('1/10/2018 20:00')
var difference = Math.floor((b - a) / 1000 / 60);
console.log(difference + ' minutes difference.');

Разница во времени в секундах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...