ฉันสามารถแปลงวันที่ iso เป็นมิลลิวินาทีได้หรือไม่ ตัวอย่างเช่นฉันต้องการแปลง iso นี้
2012-02-10T13:19:11+0000
เป็นมิลลิวินาที
เพราะฉันต้องการเปรียบเทียบวันที่ปัจจุบันจากวันที่สร้าง และวันที่สร้างคือวันที่ iso
ฉันสามารถแปลงวันที่ iso เป็นมิลลิวินาทีได้หรือไม่ ตัวอย่างเช่นฉันต้องการแปลง iso นี้
2012-02-10T13:19:11+0000
เป็นมิลลิวินาที
เพราะฉันต้องการเปรียบเทียบวันที่ปัจจุบันจากวันที่สร้าง และวันที่สร้างคือวันที่ iso
1328796537
แต่ใน fb api วันที่แสดงใน iso2012-02-10T13:18:45+0000
date1.getTime() - date2.getTime()
- ทั้งหมดที่คุณต้องการ
คำตอบ:
ลองทำตามนี้
var date = new Date("11/21/1987 16:00:00"); // some mock date
var milliseconds = date.getTime();
// This will return you the number of milliseconds
// elapsed from January 1, 1970
// if your date is less than that date, the value will be negative
console.log(milliseconds);
แก้ไข
คุณได้ระบุวันที่ ISO นอกจากนี้ยังได้รับการยอมรับจากผู้สร้างDate
วัตถุ
var myDate = new Date("2012-02-10T13:19:11+0000");
var result = myDate.getTime();
console.log(result);
แก้ไข
สิ่งที่ดีที่สุดที่ฉันพบคือการกำจัดออฟเซ็ตด้วยตนเอง
var myDate = new Date("2012-02-10T13:19:11+0000");
var offset = myDate.getTimezoneOffset() * 60 * 1000;
var withOffset = myDate.getTime();
var withoutOffset = withOffset - offset;
console.log(withOffset);
console.log(withoutOffset);
ดูเหมือนทำงาน สำหรับปัญหาในการแปลงสตริง ISO เป็นDate
วัตถุคุณอาจอ้างถึงลิงก์ที่ให้มา
แก้ไข
แก้ไขข้อบกพร่องด้วยการแปลงที่ไม่ถูกต้องเป็นมิลลิวินาทีตามความคิดเห็นของ Prasad19sara
var myDate = new Date("2012-02-10T13:19:11+0000");
ชวเลขของแนวทางแก้ไขก่อนหน้านี้คือ
var myDate = +new Date("2012-02-10T13:19:11+0000");
จะทำการแปลงประเภทในการบินและส่งออกวันที่โดยตรงในรูปแบบมิลลิวินาที
อีกวิธีหนึ่งคือการใช้วิธีการแยกวิเคราะห์ Date util ซึ่งแสดงผลเวลา EPOCH ในหน่วยมิลลิวินาทีเท่านั้น
var myDate = Date.parse("2012-02-10T13:19:11+0000");
+new Date()
ผลตอบแทน1447857230137
ซึ่งเป็นเวลาในหน่วยมิลลิวินาที
const dateMillis = Number(new Date('2017-09-26T20:24:18.801Z'))
แต่new Date('2017-09-26T20:24:18.801Z').getTime()
หรือnew Date('2017-09-26T20:24:18.801Z').valueOf()
อ่านได้ง่ายกว่า
อีกวิธีหนึ่งที่เป็นไปได้คือการเปรียบเทียบวันที่ปัจจุบันกับJanuary 1, 1970
คุณสามารถทำได้January 1, 1970
โดยnew Date(0)
;
var date = new Date();
var myDate= date - new Date(0);
ใช่คุณสามารถทำได้ในบรรทัดเดียว
let ms = Date.parse('2019-05-15 07:11:10.673Z');
console.log(ms);//1557904270673
อีกวิธีหนึ่งคือการใช้ตัวแยกวิเคราะห์วัตถุ Number ดังนี้:
let result = Number(new Date("2012-02-10T13:19:11+0000"));
let resultWithGetTime = (new Date("2012-02-10T13:19:11+0000")).getTime();
console.log(result);
console.log(resultWithGetTime);
ซึ่งจะแปลงเป็นมิลลิวินาทีเช่นเดียวgetTime()
กับDate
วัตถุ
var date = new Date()
console.log(" Date in MS last three digit = "+ date.getMilliseconds())
console.log(" MS = "+ Date.now())
ใช้สิ่งนี้เราจะได้วันที่เป็นมิลลิวินาที
var date = วันที่ใหม่ (date_string); var มิลลิวินาที = date.getTime ();
สิ่งนี้ได้ผลสำหรับฉัน!
หากต้องการแปลงวันที่ UTC เป็น
ไวยากรณ์มิลลิวินาที: Date.UTC (ปี, เดือน,? วัน,? ชั่วโมง,? นาที,? วินาที,? milisec);
เช่น :
date_in_mili = Date.UTC(2020, 07, 03, 03, 40, 40, 40);
console.log('miliseconds', date_in_mili);
เผื่อว่าใครอยากได้เฉพาะ Time from a ISO Date สิ่งต่อไปนี้จะเป็นประโยชน์ ฉันกำลังค้นหาสิ่งนั้น แต่ก็ไม่พบคำถาม ดังนั้นในกรณีที่บางคนเห็นว่าจะเป็นประโยชน์
let isoDate = '2020-09-28T15:27:15+05:30';
let result = isoDate.match(/\d\d:\d\d/);
console.log(result[0]);
ผลลัพธ์จะเป็นเวลาเดียวจาก isoDate ซึ่งก็คือ
15:27