日付文字列があり、 JavaScript または jQuery を使用(2013-03-10 19:43:55)
してこの形式に変換したいと考えています。(Mar 10, 2013 | 7:43 pm)
これどうやってするの ??
1284 次
3 に答える
2
@arun-p-johny ソリューションをクロスブラウザー互換ソリューションに拡張する
function converter(s) {
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
s = s.replace(/-/g, '/');
var d = new Date(s);
var hour = d.getHours();
return d.getFullYear() + ' ' + months[d.getMonth()] + ' ' + d.getDate() + ' | ' + (hour % 12) + ':' + d.getMinutes() + ' ' + (hour > 11 ? 'pm' : 'am');
}
console.log(converter('2013-03-10 19:43:55'));
于 2013-03-14T11:54:30.003 に答える
1
次のようなものを試してください
function converter(string) {
var d = new Date(string);
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'sep', 'Oct', 'Nov', 'Dec'];
var hour = d.getHours();
return d.getFullYear() + ' ' + months[d.getMonth()] + ' ' + d.getDate() + ' | ' + (hour % 12) + ' ' + d.getMinutes() + ':' + (hour > 11 ? 'pm' : 'am');
}
alert(converter('2013-03-10 19:43:55'))
デモ:フィドル
アップデート:
RegEx based solution for cross browser compatibility
function converter(string) {
var d = string.split(/[-:\s]/);
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'sep', 'Oct', 'Nov', 'Dec'];
var hour = parseInt(d[3], 10);
return d[0] + ' ' + months[parseInt(d[1], 10) - 1] + ' ' + d[2] + ' | ' + (hour % 12) + ' ' + d[4] + ':' + (hour > 11 ? 'pm' : 'am');
}
alert(converter('2013-03-10 19:43:55'))
デモ:フィドル
于 2013-03-13T09:38:39.243 に答える
0
カシフの答えは+1で機能しているようですが、小さな問題があります.
表示される分が 10 未満の場合、彼の機能に従って、「6:08 PM」を表示する代わりに「6:8 PM」と表示します。これは、追加することで解決できます。
var minutes = d.getMinutes();
if(minutes<10){
minutes = "0"+minutes;
}
完全な作業機能は次のようになります。
function dateConverter(s) {
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
s = s.replace(/-/g, '/');
var d = new Date(s);
var hour = d.getHours();
var minutes = d.getMinutes();
//to display the minutes less than 10 with 0 as the suffix
if(minutes<10){
minutes = "0"+minutes;
}
return months[d.getMonth()] + ' ' + d.getDate() + ' , ' + d.getFullYear() + ' | ' + (hour % 12) + ':' + minutes + ' ' + (hour > 11 ? 'pm' : 'am');
}
于 2016-06-17T22:50:57.077 に答える