Asignar una Datevariable a otra copiará la referencia a la misma instancia. Esto significa que cambiar uno cambiará al otro.
¿Cómo puedo clonar o copiar una Dateinstancia?
javascript
Árvíztűrő tükörfúrógép
fuente
fuente

Date.prototype.clone = function() { return new Date(this.getTime()); };que luego podría usar comocopiedDate = date.clone();copiedDate = new Date(date)enfoque funciona en IE6 +. En Firefox, las dos opciones tienen la misma velocidad.new Date(date)igual quenew Date(date.getTime()), porque JS intentará llamardate.valueOf()cuando necesite un número, ydate.valueOf()es lo mismo quedate.getTime(), referencia Date.valueOf Object.valueOfnew Date(date), usenew Date(date.getTime()o en sunew Date(date.valueOf)lugar, ya que la primera forma puede generar diferencias entre las fechas en al menos Firefox e IE (no en Chrome). Por ejemplo, el usotoISOString()en ambas fechas en Firefox genera"2015-04-21T04:56:42.000Z"y"2015-04-21T04:56:42.337Z".Este es el enfoque más limpio
fuente
fuente
+está haciendo a todos menos a los expertos de JS.+signo es unray operador aquí. Significanew Date( Number(orig)). Más aquí: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…Versión simplificada:
fuente
const cloneDate = d => new Date(d.getTime()).Descubrí que esta simple asignación también funciona:
Pero no sé lo "seguro" que es. Probado con éxito en IE7 y Chrome 19.
fuente
new Date(date), usenew Date(date.getTime()o en sunew Date(date.valueOf)lugar, ya que la primera forma puede generar diferencias entre las fechas en al menos Firefox e IE (no en Chrome). Por ejemplo, el usotoISOString()en ambas fechas en Firefox genera"2015-04-21T04:56:42.000Z"y"2015-04-21T04:56:42.337Z".