Cách tốt nhất để tính thời gian trôi qua kể từ (cuối cùng) nửa đêm bằng ms là gì?Cách tính ms từ nửa đêm trong Javascript
Trả lời
Tạo ngày mới sử dụng ngày/tháng/năm hiện tại và nhận sự khác biệt.
var now = new Date(),
then = new Date(
now.getFullYear(),
now.getMonth(),
now.getDate(),
0,0,0),
diff = now.getTime() - then.getTime(); // difference in milliseconds
Bạn có thể làm điều đó dễ dàng hơn nhiều bằng cách sao chép đối tượng ngày và đặt thời gian thành 00:00:00. Câu trả lời của bạn có thể sai nếu đồng hồ đánh dấu giữa việc tạo hai ngày. – RobG
Nó hoạt động sai trong trường hợp '2/365 * 100%' vì thay đổi tiết kiệm ánh sáng ban ngày – Dan
@Dan: không, đối tượng Ngày sử dụng dấu thời gian không quan tâm đến DST. Thêm vào thực tế là DST thay đổi tại một số thời gian đầu vào buổi sáng nhưng không phải nửa đêm, nó là tốt –
var today = new Date();
var d = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0);
var difference = today.getTime() - d.getTime();
Giây kể từ nửa đêm chỉ đơn giản là sẽ được hiển thị thời điểm đó, nhưng thay vì sử dụng giờ: phút: giây, mọi thứ đều được quy đổi ra giây.
Tôi nghĩ rằng điều này sẽ làm điều đó:
var now = new Date();
var hours = now.getHours()*(60*60);
var minutes = now.getMinutes()*60;
var seconds = now.getSeconds();
var secSinceMidnight = hours+minutes+seconds;
điều này là sai vào giờ tiết kiệm ánh sáng ban ngày – Mala
@Mala bạn có nghĩa là mã này không thành công nếu điều chỉnh tiết kiệm ánh sáng ban ngày được áp dụng nửa đêm mới nhất? Sau đó câu trả lời của Andrew D. cũng không thành công – Dan
@Dan: câu trả lời này giả định rằng 8 giờ sáng nghĩa là 8 giờ kể từ nửa đêm, điều này không đúng vào những ngày khi tiết kiệm ban ngày bắt đầu hoặc kết thúc. Tôi đã không xem xét kỹ câu trả lời của Andrew, nhưng trong bất kỳ trường hợp nào tôi đã đề xuất câu trả lời của RobG ở trên, bởi vì tôi có thể xác nhận rằng nó hoạt động và không bị ảnh hưởng bởi một dấu đồng hồ tiềm năng giữa hai tờ khai Ngày – Mala
var d=new Date();
// offset from midnight in Greenwich timezone
var msFromMidnightInGMT=d%86400000;
// offset from midnight in locale timezone
var msFromMidnightLocale=(d.getTime()-d.getTimezoneOffset()*60000)%86400000;
Một loạt các câu trả lời như vậy ở đây khác:
var d = new Date(), e = new Date(d);
var msSinceMidnight = e - d.setHours(0,0,0,0);
Là một chức năng:
function getMsSinceMidnight(d) {
var e = new Date(d);
return d - e.setHours(0,0,0,0);
}
alert(getMsSinceMidnight(new Date()));
. Nó xử lý chính xác thời gian tiết kiệm ánh sáng ban ngày. – Mala
đơn giản để viết , nếu bạn không nhớ tạo hai ngày.
var msSinceMidnight= new Date()-new Date().setHours(0,0,0,0);
Nhiều câu trả lời trừ RobG's (recommended answer), Kolink's và Lai's là sai ở đây
Hãy nhìn gần nhau hơn
sai lầm đầu tiên
OptimusCrime và Andrew D. câu trả lời:
Vì Mala sugested, nếu điều chỉnh tiết kiệm ánh sáng ban ngày được áp dụng nửa đêm gần nhất, chúng tôi nhận được giá trị không chính xác. Hãy debug:
- Giả sử đó là chủ nhật cuối cùng của tháng
- Hiện là cố định lúc 2 giờ sáng.
- Nếu chúng ta nhìn thấy 10:00 trên đồng hồ, có thực sự là 11 giờ trôi qua từ nửa đêm
- Nhưng thay vào đó, chúng tôi đếm
10 * 60 * 60 * 1000
ms - Bí quyết được chơi khi nửa đêm xảy ra tại tiểu bang DST khác nhau sau đó hiện
thứ hai sai lầm
kennebeck's câu trả lời:
Như RobG đã viết, đồng hồ có thể đánh dấu nếu bạn nhận được thời gian hệ thống hai lần. Chúng tôi thậm chí có thể xuất hiện vào những ngày khác nhau đôi khi.Bạn có thể tái sản xuất này trong một vòng lặp:
for (var i = 0; true; i++) {
if ((new Date()).getTime() - (new Date()).getTime()) {
alert(i); // console.log(i); // for me it's about a 1000
break;
}
}
Thứ ba là cạm bẫy cá nhân của tôi bạn có thể trải nghiệm
Xét đoạn mã sau:
var d = new Date(),
msSinceMidnight = d - d.setHours(0,0,0,0);
msSinceMidnight
luôn 0
là như đối tượng được thay đổi trong quá trình tính toán trước khi thao tác với chất nền
Cuối cùng, mã này hoạt động:
var d = new Date(),
msSinceMidnight = d.getTime() - d.setHours(0,0,0,0);
- 1. utc giây kể từ nửa đêm đến ngày giờ
- 2. Nhận giây kể từ nửa đêm ở python
- 3. Một ngày không có nửa đêm
- 4. unix timestamp tròn đến nửa đêm
- 5. Cách cập nhật tiện ích ứng dụng vào nửa đêm?
- 6. Làm cách nào để nhận được mili giây kể từ nửa đêm UTC trong C?
- 7. Thay đổi thứ tự của hình ảnh lúc nửa đêm
- 8. Mysql Truy vấn trở lại nửa đêm chỉ
- 9. Ghi lại các bản ghi thời gian qua nửa đêm
- 10. Chọn dấu thời gian của ngày hôm nay (kể từ nửa đêm) chỉ
- 11. Cách tốt nhất để xác định xem System.DateTime là nửa đêm?
- 12. Nhận chênh lệch DateTime PHP trong ngày, xem xét nửa đêm là thay đổi ngày
- 13. Phím tắt cho đi onelevel lên trong chỉ huy nửa đêm [mc]
- 14. -ms-transform cho IE9 trong JavaScript
- 15. Nhận dấu thời gian unix của nửa đêm vào Thứ Tư trước đó
- 16. Làm thế nào để hết hạn Cookie bằng Jquery lúc nửa đêm?
- 17. Biểu thức Cron (Quartz) cho một chương trình chạy mỗi nửa đêm lúc 12 giờ sáng
- 18. Tại sao TimedRotatingFileHandler của tôi không hoạt động vào nửa đêm?
- 19. Cách truy vấn cho tất cả các bản ghi được tạo hôm nay (nửa đêm UTC..Now)
- 20. Tại sao thêm 6 ngày 7½ giờ đến nửa đêm kết quả là 8:30?
- 21. Thay đổi các ràng buộc chính của chỉ huy nửa đêm như VIM?
- 22. cách sử dụng tệp MS-Access từ Linux?
- 23. Hệ thống treo sau khi chạy javascript qua đêm
- 24. MS Access Thuộc tính
- 25. Làm cách nào để có được thời gian UTC "nửa đêm" cho một múi giờ nhất định?
- 26. Làm thế nào để nhận được thời gian tính bằng mili giây kể từ thời kỳ unix trong Javascript?
- 27. Cách triển khai quy trình hàng đêm trong .NET?
- 28. Tắt máy tính trong MS-DOS bằng ACPI
- 29. Làm cách nào để sao chép một đối tượng JavaScript từ thuộc tính PascalCase sang thuộc tính camelCase (trong JavaScript)?
- 30. Tạo con trỏ nửa trong suốt từ hình ảnh
[Ngày] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date) Nhận một đối tượng ngày cho (cuối cùng) nửa đêm và trừ "bây giờ" từ nó ... - Chỉ cần đơn giản toán học – Andreas
@Andreas Midnight trừ từ bây giờ cho một thời gian tiêu cực;) –
Cảm ơn guys! Kolnik, bạn giải pháp cũng cho một thời gian tiêu cực? – Olga