[英]change time format to 24 hours in javascript
我的时间格式如下:12/16/2011 3:49:37 PM 我通过以下方式获得了这种格式:
var newDate = new Date(timeFromat);
timeFormat = newDate.toLocaleString();
我的实际格式是 GMT,我使用上面的代码将其转换为凉亭时间。
我想将其更改为 24 小时时间格式,因此我希望将此日期更改为:12/16/2011 15:49:37 我想在 javascript 中进行更改。
那就是我所做的
var firstPartOftimeFormat = timeFormat.substring(0,9);
var secondPartOftimeFormat = timeFormat.substring(10,20);
但当日期格式类似于:3/16/2011 时它不起作用。 但以下部分有效。
var time = $("#starttime").val();
var hours = Number(secondPartOftimeFormat.match(/^(\d+)/)[1]);
var minutes = Number(secondPartOftimeFormat.match(/:(\d+)/)[1]);
var AMPM = secondPartOftimeFormat.match(/\s(.*)$/)[1];
if(AMPM == "PM" && hours<12) hours = hours+12;
if(AMPM == "AM" && hours==12) hours = hours-12;
var sHours = hours.toString();
var sMinutes = minutes.toString();
if(hours<10) sHours = "0" + sHours;
if(minutes<10) sMinutes = "0" + sMinutes;
alert(sHours + ":" + sMinutes);
你能建议其他方法吗?
谢谢
使用dateObj.toLocaleString([locales[, options]])
选项 1 - 使用语言环境
var date = new Date();
console.log(date.toLocaleString('en-GB'));
选项 2 - 使用选项
var options = { hour12: false };
console.log(date.toLocaleString('en-US', options));
使用一些资源
日期/toLocaleDateString MDN
日期/toLocaleTimeString MDN
const lang = navigator.language || navigator.languages[0]; const date = new Date(); const date_locale = date.toLocaleDateString(lang, { day: 'numeric', month: 'short', year: 'numeric' }); const time_locale = date.toLocaleTimeString(lang); const formatted = `${date_locale} ${time_locale}`; console.log(formatted)
上面我们从Window 的 Navigator对象推导出当前语言。
如果lang
最终undefined
则完全没问题,将使用默认值。
要强制使用所需的格式,您可以手动将lang
设置为: 'en-US'
、 'eu'
、 'en-GB'
、 'de-DE'
、 'hr-HR'
等...
以下是时间示例:
const date = new Date(); console.log(date.toLocaleTimeString('en-US')) // 12h console.log(date.toLocaleTimeString('en-GB')) // 24h console.log(date.toLocaleTimeString()) // Default
您可以使用以下代码获取 24 小时格式
new Date("3/16/2011 3:49:37 PM").getHours() // 15
new Date("3/16/2011 3:49:37 PM").getMinutes() // 49
要获得 24 小时格式:
const date = new Date(); console.log(date.toLocaleTimeString([], { hourCycle: 'h23', hour: '2-digit', minute: '2-digit' }));
hourCycle: 'h23'
是完美的
感谢https://stackoverflow.com/users/12425695/luis-serrano
new Date().toLocaleString('ru-RU', {
timeZone: 'Europe/Moscow',
hourCycle: 'h23',
year: "numeric",
month: "2-digit",
day: "2-digit",
hour: "2-digit",
minute: "2-digit",
second: "2-digit"
});
尝试这个:
// British English uses day-month-year order and 24-hour time without AM/PM
console.log(date.toLocaleString('en-GB'));
// → "20/12/2012 03:00:00"
参考: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString
试试这个,它对我来说完美无缺。 它提供 24 小时时间格式
var Date= new Date();
var TimeFormat= date.toLocaleString('en-GB');
您的答案将是2018 年 12 月 14 日星期五 18:00:00 GMT+0530(印度标准时间)
试试这个功能
<script type="text/javascript">
<!--
function displayTime() {
var currentDate = new Date();
var currentHour = currentDate.getHours();
var currentMinute = currentDate.getMinutes();
var currentSecond = currentDate.getSeconds();
document.getElementById('timeDiv').innerHTML = 'Hour: ' + currentHour + ' Minute: ' + currentMinute + ' Second: ' + currentSecond;
}
window.onload = function() {
window.setInterval('displayTime()', 1000);
}
// -->
</script>
尝试这个
var d = new Date();
alert(d.getHours());
alert(d.getMinutes());
new Date().toLocaleTimeString('fa-IR', { hour12: false, hour: '2-digit', minute: '2-digit' })
这就是它对我有用的方式!
试试这个,它对我来说很好用。 它给出了 24 小时制时间格式。
let time = new Date(new Date().toLocaleString('en-GB', { timeZone: 'Europe/London' }));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.