Simplify math, add a js_sys test for correctness

This commit is contained in:
Brandon W Maister 2020-07-05 16:49:14 -04:00
parent b6d7bac99a
commit 073d86a3b1
2 changed files with 10 additions and 1 deletions

View File

@ -762,7 +762,7 @@ impl From<&js_sys::Date> for DateTime<Utc> {
fn from(date: &js_sys::Date) -> DateTime<Utc> {
let millisecs_since_unix_epoch: u64 = date.get_time() as u64;
let secs = millisecs_since_unix_epoch / 1000;
let nanos = 1_000_000 * (millisecs_since_unix_epoch - 1000 * secs);
let nanos = 1_000_000 * (millisecs_since_unix_epoch % 1000);
let naive = NaiveDateTime::from_timestamp(secs as i64, nanos as u32);
DateTime::from_utc(naive, Utc)
}

View File

@ -35,4 +35,13 @@ mod test {
local.offset(),
);
}
#[wasm_bindgen_test]
fn from_is_exact() {
let now = js_sys::Date::new_0();
let dt = DateTime::<Utc>::from(now.clone());
assert_eq!(now.get_time() as i64, dt.timestamp_millis());
}
}