mirror of
https://github.com/chronotope/chrono.git
synced 2025-10-02 23:36:17 +00:00
Simplify math, add a js_sys test for correctness
This commit is contained in:
parent
b6d7bac99a
commit
073d86a3b1
@ -762,7 +762,7 @@ impl From<&js_sys::Date> for DateTime<Utc> {
|
|||||||
fn from(date: &js_sys::Date) -> DateTime<Utc> {
|
fn from(date: &js_sys::Date) -> DateTime<Utc> {
|
||||||
let millisecs_since_unix_epoch: u64 = date.get_time() as u64;
|
let millisecs_since_unix_epoch: u64 = date.get_time() as u64;
|
||||||
let secs = millisecs_since_unix_epoch / 1000;
|
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);
|
let naive = NaiveDateTime::from_timestamp(secs as i64, nanos as u32);
|
||||||
DateTime::from_utc(naive, Utc)
|
DateTime::from_utc(naive, Utc)
|
||||||
}
|
}
|
||||||
|
@ -35,4 +35,13 @@ mod test {
|
|||||||
local.offset(),
|
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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user