使用 ECMAScript 国际化格式化日期和时间 API
Formatting Date and Time With ECMAScript Internationalization API
我需要一个 javascript date/time 格式如下:
2015 年 2 月 16 日06:31:00上午
我打算使用 toLocaleTimeString
和一些选项,但我在下面尝试的代码似乎在 Chrome 中不起作用。
function getFormattedDateTime(dateTimeToFormat) {
dateTimeToFormat = new Date(dateTimeToFormat);
var monthOptions = {
month: 'long', year: 'numeric', day: 'numeric',
hour: '2-digit', minute: '2-digit', second: '2-digit'
};
return dateTimeToFormat.toLocaleTimeString('en-us', monthOptions);
}
以上代码的输出是February 16, 2015, 6:31 AM
很接近,但没有雪茄。
jQuery 也是一个选项,如果它有任何更好的日期格式化实用程序。 jQuery 仅此而已,请不要插件。
这里有一个 JSFiddle 可以节省一些时间:https://jsfiddle.net/gxze230b/
拼写错误更正后,输出字符串现在为:February 16, 2015, 6:31:00 AM
您的代码中有错字..
而不是 seconds: '2-digit'
应该是 second: '2-digit'
更新了你的fiddle
https://jsfiddle.net/gxze230b/3/
编辑:找了一段时间后认为最好使用这里给出的答案
Where can I find documentation on formatting a date in JavaScript?
目前似乎不支持所有组合。
感谢@Amitd 的指导,我能够制定一个方法来产生 February 16, 2015 06:31:00 AM[=12= 的预期输出]
function getFormattedDateTime(dateTimeToFormat) {dateTimeToFormat = new Date(dateTimeToFormat);
var zeroPad = function (val) {
return (val <= 9 ? '0' + val : '' + val);
};
var month = dateTimeToFormat.toLocaleString('en-us', {month: "long"});
var day = dateTimeToFormat.getDate();
var year = dateTimeToFormat.getFullYear();
var hour = ((dateTimeToFormat.getHours() + 11) % 12 + 1);
var minutes = dateTimeToFormat.getMinutes();
var seconds = dateTimeToFormat.getSeconds();
var suffix = (hour <= 12) ? 'AM' : 'PM';
return month + ' ' + zeroPad(day) + ', ' + year + ' ' + zeroPad(hour) + ':' + zeroPad(minutes) + ':' + zeroPad(seconds) + ' ' + suffix;
}
我需要一个 javascript date/time 格式如下:
2015 年 2 月 16 日06:31:00上午
我打算使用 toLocaleTimeString
和一些选项,但我在下面尝试的代码似乎在 Chrome 中不起作用。
function getFormattedDateTime(dateTimeToFormat) {
dateTimeToFormat = new Date(dateTimeToFormat);
var monthOptions = {
month: 'long', year: 'numeric', day: 'numeric',
hour: '2-digit', minute: '2-digit', second: '2-digit'
};
return dateTimeToFormat.toLocaleTimeString('en-us', monthOptions);
}
以上代码的输出是February 16, 2015, 6:31 AM
很接近,但没有雪茄。 jQuery 也是一个选项,如果它有任何更好的日期格式化实用程序。 jQuery 仅此而已,请不要插件。
这里有一个 JSFiddle 可以节省一些时间:https://jsfiddle.net/gxze230b/
拼写错误更正后,输出字符串现在为:February 16, 2015, 6:31:00 AM
您的代码中有错字..
而不是 seconds: '2-digit'
应该是 second: '2-digit'
更新了你的fiddle https://jsfiddle.net/gxze230b/3/
编辑:找了一段时间后认为最好使用这里给出的答案
Where can I find documentation on formatting a date in JavaScript?
目前似乎不支持所有组合。
感谢@Amitd 的指导,我能够制定一个方法来产生 February 16, 2015 06:31:00 AM[=12= 的预期输出]
function getFormattedDateTime(dateTimeToFormat) {dateTimeToFormat = new Date(dateTimeToFormat);
var zeroPad = function (val) {
return (val <= 9 ? '0' + val : '' + val);
};
var month = dateTimeToFormat.toLocaleString('en-us', {month: "long"});
var day = dateTimeToFormat.getDate();
var year = dateTimeToFormat.getFullYear();
var hour = ((dateTimeToFormat.getHours() + 11) % 12 + 1);
var minutes = dateTimeToFormat.getMinutes();
var seconds = dateTimeToFormat.getSeconds();
var suffix = (hour <= 12) ? 'AM' : 'PM';
return month + ' ' + zeroPad(day) + ', ' + year + ' ' + zeroPad(hour) + ':' + zeroPad(minutes) + ':' + zeroPad(seconds) + ' ' + suffix;
}