【问题标题】:convert time to to 12 hour by manipulate string通过操作字符串将时间转换为 12 小时
【发布时间】:2015-06-16 10:17:50
【问题描述】:
"2015-06-23 14:00:00"

我尝试将以上日期时间格式化为 12 小时制,但卡在某个地方。

function formatDate(raw_date){
    var right = raw_date.substring(10, 0);

    var hours = ((right[0].substring(2,0) + 11) % 12 + 1);
    var min = raw_date.substring(14,16);
    var suffix = right[1] >= 12 ? "PM":"AM";
    right[1] = ((right[1] + 11) % 12 + 1) + suffix;
    return hours + ':' + min + ' ' + suffix;
}

有人可以帮忙吗?我想要的输出是"23/06/2015 02:00 PM"

【问题讨论】:

  • var right = raw_date.substring(10, 0);?!如果raw_date"2015-06-23 14:00:00",那么right 将是"2015-06-23"。然后right[0].substring(2,0)?!
  • 我必须说真的不明白你这里的逻辑。

标签: javascript jquery datetime time


【解决方案1】:

试试这个:

function formatDate(raw_date) {
    var right = new Date(raw_date);

    var currentHours = right.getHours();
    var timeOfDay = (currentHours < 12) ? "AM" : "PM";
    if (currentHours > 12) {
        currentHours -= 12;
    }
    return (right.getDate() + '/' + right.getMonth()+ '/' + right.getFullYear() +" "+ currentHours+ ":"+right.getMinutes() + timeOfDay);
}

alert(formatDate("2015-06-23 14:00:00"));

Demo

【讨论】:

  • 在 IE11 和 Firefox 38.0.5 中根本不起作用。输出为 NaN/NaN/NaN NaNPM
【解决方案2】:

基于您的代码的解决方案:

function formatDate(raw_date){
    var year = raw_date.substring(0,4);
    var month = raw_date.substring(5,7);
    var day = raw_date.substring(8,10); 
    var right = raw_date.substring(10);
    var hours = ((right.substring(0,3))% 12 );
    var min = raw_date.substring(14,16);
    var suffix = right.substring(0,3) >= 12 ? "PM":"AM";
    return day + "/"+month+"/"+year+" "+hours + ':' + min + ' ' + suffix;
}

【讨论】:

    【解决方案3】:

    您应该遵循一个简单的流程。 尝试分解输入 -> 转换它们 _> 然后总结它们:

    function formatDate(raw_date){
        var right = raw_date.substring(0, 10);
    
        var year=right.substring(0,4);
        var month=right.substring(5,7);
        var day=right.substring(8,10);
    
        right=day+"/"+month+"/"+year;
    
        var left=raw_date.substring(11, raw_date.length);
    
        var hours = left.substring(0,2);
        var suffix = hours >= 12 ? "PM":"AM";
        hours=hours-12;
        if(hours<10) hours='0'+hours;
    
        var min = left.substring(3,5);
    
        left=hours+":"+min+" "+suffix;
    
        return right + ' ' + left;
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      相关资源
      最近更新 更多