繁体   English   中英

在 javascript 中将时间格式更改为 24 小时制

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM