javascript - 在 JavaScript 中将 "9:00 pm"转换为 "21:00:00"的正确方法是什么?

标签 javascript date time

首先,我不知道应该用什么名称来引用这些格式,所以请原谅我使用一个真实的例子。

在 PHP 中,我可以轻松地将字符串时间转换为时间戳,然后使用该时间戳创建我选择的任何格式的时间,如下所示: $timestamp = strtotime('9:00 am'); $militaryTime = date('H:i:s',$timestamp); echo $militaryTime;

但是我该如何在 JavaScript 中做到这一点呢?我根本不明白我会使用 JS Date() 对象中的哪个方法来输入初始时间,然后使用 JS Date() 对象中的哪个方法来转换时间,等等

那么,javascript中将“9:00 pm”转换为“21:00:00”的正确方法是什么?

最佳答案

http://jsfiddle.net/VxL4X/1/

var timeString = "7:33 PM";

var dateint = Date.parse("January 1, 2000 " + timeString);
var dateObj = new Date(dateint);
var milTime = dateObj.toLocaleTimeString();
var milTime2 = dateObj.toTimeString().split(" ")[0];

console.log(milTime);
console.log(milTime2);

如果您希望此应用程序是国际化的,我可能建议不要使用toLocaleTimeString

另一个选项是手动构造时间字符串:http://jsfiddle.net/VxL4X/2/

var manualTime = 
    dateObj.getHours().pad(2) + ':' +
    dateObj.getMinutes().pad(2) + ':' +
    dateObj.getSeconds().pad(2);

(注意带有 pad 函数的 Number 对象的扩展)

关于javascript - 在 JavaScript 中将 "9:00 pm"转换为 "21:00:00"的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12431920/

相关文章:

javascript - 从 json 动态获取数据时出现类型错误

javascript - CakePHP 覆盖 DS

sql - 在 Oracle 中减去日期 - 数字还是间隔数据类型?

java - 如何计算自定义纪元时间?不是 UNIX 时代

javascript - 使用 Rails 3.1 中的 JQuery 下拉框发布到 Controller

javascript - Angular 模块 md-data-table 服务

javascript - 如何使用 jQuery 从 HTML <input type ="date"> 中提取值

c - 阻塞线程直到系统时钟发生第二次变化

无需专用函数即可将纪元时间转换为人类可读

java - 如何将时间转换为字符串或整数