mirror of
https://github.com/chronotope/chrono.git
synced 2025-10-01 23:11:56 +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> {
|
||||
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)
|
||||
}
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user