Sly*_*hic 57 javascript formatting time datetime
将以下JSON返回值从24小时格式转换为12小时格式的AM/PM的最佳方法是什么?日期应该保持不变 - 时间是唯一需要格式化的东西.
February 04, 2011 19:00:00
Run Code Online (Sandbox Code Playgroud)
PS使用jQuery,如果这让它变得更容易!也喜欢简单的函数/代码而不使用Date.js.
Tom*_*Tom 94
这是如何在没有if语句的情况下更改小时数:
hours = ((hours + 11) % 12 + 1);
Run Code Online (Sandbox Code Playgroud)
aor*_*sik 62
更新2:没有秒选项
更新: AM中午校正后,测试:http://jsfiddle.net/aorcsik/xbtjE/
我创建了这个函数来做到这一点:
function formatDate(date) {
var d = new Date(date);
var hh = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
var dd = "AM";
var h = hh;
if (h >= 12) {
h = hh - 12;
dd = "PM";
}
if (h == 0) {
h = 12;
}
m = m < 10 ? "0" + m : m;
s = s < 10 ? "0" + s : s;
/* if you want 2 digit hours:
h = h<10?"0"+h:h; */
var pattern = new RegExp("0?" + hh + ":" + m + ":" + s);
var replacement = h + ":" + m;
/* if you want to add seconds
replacement += ":"+s; */
replacement += " " + dd;
return date.replace(pattern, replacement);
}
alert(formatDate("February 04, 2011 12:00:00"));Run Code Online (Sandbox Code Playgroud)
小智 36
//it is pm if hours from 12 onwards
suffix = (hours >= 12)? 'pm' : 'am';
//only -12 from hours if it is greater than 12 (if not back at mid night)
hours = (hours > 12)? hours -12 : hours;
//if 00 then it is 12 am
hours = (hours == '00')? 12 : hours;
Run Code Online (Sandbox Code Playgroud)
Ver*_*sen 17
对于只想在输出中输入时间的人来说,可以将选项传递给JavaScript的Date :: toLocaleString()方法.例:
var date = new Date("February 04, 2011 19:00:00");
var options = {
hour: 'numeric',
minute: 'numeric',
hour12: true
};
var timeString = date.toLocaleString('en-US', options);
console.log(timeString);Run Code Online (Sandbox Code Playgroud)
timeString将设置为:
8:00 AM
如果您也需要秒数,请在您的选项中添加"second:'numeric'".对于所有选项,请看这个.
使用Prototype这是一种相当简洁的方法:
Date.prototype.getFormattedTime = function () {
var hours = this.getHours() == 0 ? "12" : this.getHours() > 12 ? this.getHours() - 12 : this.getHours();
var minutes = (this.getMinutes() < 10 ? "0" : "") + this.getMinutes();
var ampm = this.getHours() < 12 ? "AM" : "PM";
var formattedTime = hours + ":" + minutes + " " + ampm;
return formattedTime;
}
然后,您所要做的就是将字符串值转换为日期并使用新方法:
var stringValue = "February 04, 2011 19:00:00; var dateValue = new Date(stringValue); var formattedTime = dateValue.getFormattedTime();
或者在一行中:
var formattedTime = new Date("February 04, 2011 19:00:00").getFormattedTime();
小智 5
function pad(num) {return ("0" + num).slice(-2);}
function time1() {
var today = new Date(),
h = today.getHours(),
m = today.getMinutes(),
s = today.getSeconds();
h = h % 12;
h = h ? h : 12; // the hour '0' should be '12'
clk.innerHTML = h + ':' +
pad(m) + ':' +
pad(s) + ' ' +
(h >= 12 ? 'PM' : 'AM');
}
window.onload = function() {
var clk = document.getElementById('clk');
t = setInterval(time1, 500);
}Run Code Online (Sandbox Code Playgroud)
<span id="clk"></span>Run Code Online (Sandbox Code Playgroud)
小智 5
保持简单和干净
var d = new Date();
var n = d.toLocaleString();
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/rinu6200/3dkdxaad/#base
| 归档时间: |
|
| 查看次数: |
169204 次 |
| 最近记录: |