Moment.js Examples

by Marcos vini

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>
<table id="output">
    <tbody>
        
    </tbody>
</table>

CSS

#output {
    font-family: "consolas";
}
td + td {
    padding-left: 20px;
}

JavaScript

function formatDuration(start, end) {
  const duration = moment.duration(moment(end).diff(moment(start)));

  const dias = duration.days();
  const horas = duration.hours();
  const minutos = duration.minutes();
  const segundos = duration.seconds();

  let formattedDuration = "";

  if (dias > 0) {
    formattedDuration += `${dias} dia${dias > 1 ? 's' : ''}, `;
  }
  if (horas > 0) {
    formattedDuration += `${horas} hora${horas > 1 ? 's' : ''}, `;
  }
  if (minutos > 0) {
    formattedDuration += `${minutos} minuto${minutos > 1 ? 's' : ''}, `;
  }
  if (segundos > 0) {
    formattedDuration += `${segundos} segundo${segundos > 1 ? 's' : ''}`;
  }

  return formattedDuration.trim();
}

const start = "2023-06-01 14:00:00";
const end = "2023-06-03 15:60:00";

console.log(formatDuration(start, end));