use crate::UtcDateTime; use crate::convert::*; impl From for UtcDateTime { /// # Panics /// /// This may panic if the timestamp can not be represented. #[track_caller] fn from(js_date: js_sys::Date) -> Self { // get_time() returns milliseconds let timestamp_nanos = (js_date.get_time() * Nanosecond::per_t::(Millisecond)) as i128; Self::from_unix_timestamp_nanos(timestamp_nanos) .expect("invalid timestamp: Timestamp cannot fit in range") } } impl From for js_sys::Date { fn from(datetime: UtcDateTime) -> Self { // new Date() takes milliseconds let timestamp = (datetime.unix_timestamp_nanos() / Nanosecond::per_t::(Millisecond)) as f64; Self::new(×tamp.into()) } }