Cómo eliminar hace unos segundos y mostrarlo ahora en moment.js . El moment.js se muestra hace unos segundos, quiero personalizar un poco, para mostrar solo ahora hasta 1 minuto. Pero en otros casos, como hace dos minutos, quiero mostrar hace 2 minutos.
Example 0-59 seconds just now
import "./styles.css"; import { useEffect } from "react"; import moment from "moment"; export default function App() { moment.updateLocale("en", { relativeTime: { future: "in %s", past: "%s ago", s: " %ds", ss: "%d seconds", m: "%dm", mm: "%dm", h: "an h", hh: "%dh", d: "a day", dd: "%d days", w: "a week", ww: "%d weeks", M: "a month", MM: "%d months", y: "a year", yy: "%d years" } }); const MINUTE_MS = 60000; useEffect(() => { const interval = setInterval(() => { console.log("Logs every minute"); called(); }, MINUTE_MS); return () => clearInterval(interval); // This represents the unmount function, in which you need to clear your interval to prevent memory leaks. }, []); const called = () => { var k = Date.now() - 5 * 1000; return k; }; moment.locale("en"); return ( <div className="App"> <div>{moment(called()).fromNow()}</div> </div> ); }Puede establecer s y ss en "just now" y cambiar tanto el future como el past en una función que no tenga prefijo/sufijo si la cadena pasada es "just now" .
moment.updateLocale("en", { relativeTime: { future: (diff) => (diff == "just now" ? diff : `in ${diff}`), past: (diff) => (diff == "just now" ? diff : `${diff} ago`), s: "just now", ss: "just now" } }); const _2_min_ago = moment().subtract(2, "minutes"); const _20_sec_ago = moment().subtract(20, "seconds"); const _20_sec_from_now = moment().add(20, "seconds"); const _2_min_from_now = moment().add(2, "minutes"); console.log(_2_min_ago.fromNow()); console.log(_20_sec_ago.fromNow()); console.log(_20_sec_from_now.fromNow()); console.log(_2_min_from_now.fromNow()); <script crossorigin src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>