【问题标题】:Convert GMT DateTime to Local System DateTime based on PHP DateFormate根据 PHP 日期格式将 GMT 日期时间转换为本地系统日期时间
【发布时间】:2016-08-28 10:04:46
【问题描述】:

如何将所有 GMT/UTC 时区转换为本地系统时区。基于类或.system_datetime 和属性data-gmt_datetimedata-datetime_formate

HTML 返回输出

<label class="grid_label_view system_datetime" data-datetime_formate="M d, Y h:i A" data-gmt_datetime="2016-08-27 06:57:00">Aug 27, 2016 06:57 AM</label>

<label class="grid_label_view system_datetime" data-datetime_formate="M d, Y h:i A" data-gmt_datetime="2016-08-27 07:14:00">Aug 27, 2016 07:14 AM</label>

以上 GMT 日期时间显示在用户本地系统时区中。

【问题讨论】:

标签: javascript php html datetime


【解决方案1】:

将日期时间转换为系统时间。

HTML

<label class="grid_label_view system_datetime" data-datetime_formate="M d, Y H:i" data-gmt_datetime="2016-08-27 07:14:00">Aug 27, 2016 06:57</label>    

<label class="grid_label_view system_datetime" data-datetime_formate="M d, Y h:i A" data-gmt_datetime="2016-08-27 06:57:00">Aug 27, 2016 06:57 AM</label>

<label class="grid_label_view system_datetime" data-datetime_formate="M d, Y h:i A" data-gmt_datetime="2016-08-27 07:14:00">Aug 27, 2016 07:14 AM</label>

JavaScript :

$(".system_datetime[data-gmt_datetime][data-datetime_formate]").each(function() {
    var gmt_datetime = $(this).attr("data-gmt_datetime");
    var gmt_datetime_formate = $(this).attr("data-datetime_formate");
    var js_gmt_datetime = new Date(gmt_datetime + ' GMT');

    var current_gmt_time = new Date();

    var datetime_timezoon_string = js_gmt_datetime.toString().match(/\(([A-Za-z\s].*)\)/)[1];

    console.log("gmt_datetime:" + gmt_datetime + ",gmt_datetime_formate:" + gmt_datetime_formate);
    var datetime_year_4_integer = js_gmt_datetime.getFullYear().toString();
    console.log("datetime_year_4_integer:" + datetime_year_4_integer);
    var datetime_year_2_integer = datetime_year_4_integer.toString().slice(-2);
    var datetime_month_integer = (js_gmt_datetime.getMonth() + 1);
    var datetime_month_full_string = 'NONE';
    var datetime_month_short_string = 'NONE';
    switch (datetime_month_integer) {
        case 1:
            datetime_month_full_string = "January";
            datetime_month_short_string = "Jan";
            break;
        case 2:
            datetime_month_full_string = "February";
            datetime_month_short_string = "Feb";
            break;
        case 3:
            datetime_month_full_string = "March";
            datetime_month_short_string = "Mar";
            break;
        case 4:
            datetime_month_full_string = "April";
            datetime_month_short_string = "Apr";
            break;
        case 5:
            datetime_month_full_string = "May";
            datetime_month_short_string = "May";
            break;
        case 6:
            datetime_month_full_string = "June";
            datetime_month_short_string = "Jun";
            break;
        case 7:
            datetime_month_full_string = "July";
            datetime_month_short_string = "Jul";
            break;
        case 8:
            datetime_month_full_string = "August";
            datetime_month_short_string = "Aug";
            break;
        case 9:
            datetime_month_full_string = "September";
            datetime_month_short_string = "Sep";
            break;
        case 10:
            datetime_month_full_string = "October";
            datetime_month_short_string = "Oct";
            break;
        case 11:
            datetime_month_full_string = "November";
            datetime_month_short_string = "Nov";
            break;
        case 12:
            datetime_month_full_string = "December";
            datetime_month_short_string = "Dec";
            break;
    }
    var datetime_day_integer = js_gmt_datetime.getDate().toString();
    var datetime_hours_24_integer = js_gmt_datetime.getHours().toString();
    var datetime_hours_12_integer = js_gmt_datetime.getHours().toString();

    if (js_gmt_datetime.getHours() > 12) {
        var datetime_hours_12_integer = "" + (js_gmt_datetime.getHours() - 12);
    }
    var datetime_minutes_integer = js_gmt_datetime.getMinutes().toString();
    var datetime_seconds_integer = js_gmt_datetime.getSeconds().toString();

    var datetime_small_am_pm_string = datetime_hours_24_integer >= 12 ? 'pm' : 'am';
    var datetime_caps_am_pm_string = datetime_hours_24_integer >= 12 ? 'PM' : 'AM';

    var system_datetime_formate = '';

    datetime_day_integer = two_digit_convert(datetime_day_integer);
    datetime_hours_24_integer = two_digit_convert(datetime_hours_24_integer);
    datetime_hours_12_integer = two_digit_convert(datetime_hours_12_integer);
    datetime_minutes_integer = two_digit_convert(datetime_minutes_integer);
    datetime_seconds_integer = two_digit_convert(datetime_seconds_integer);

    for (var char_index = 0; char_index < gmt_datetime_formate.length; char_index++) {

        switch (gmt_datetime_formate[char_index]) {
            case 'd':
                system_datetime_formate = system_datetime_formate.concat(datetime_day_integer);
                break;
            case 'D':
                system_datetime_formate = system_datetime_formate.concat("D");
                break;
            case 'j':
                system_datetime_formate = system_datetime_formate.concat(datetime_day_integer.replace(/^0+/, ''));
                break;
            case 'F':
                system_datetime_formate = system_datetime_formate.concat(datetime_month_full_string);
                break;
            case 'm':
                system_datetime_formate = system_datetime_formate.concat(datetime_month_integer);
                break;
            case 'M':
                system_datetime_formate = system_datetime_formate.concat(datetime_month_short_string);
                break;
            case 'n':
                system_datetime_formate = system_datetime_formate.concat(datetime_month_integer.replace(/^0+/, ''));
                break;
            case 'Y':
                system_datetime_formate = system_datetime_formate.concat(datetime_year_4_integer);
                break;
            case 'y':
                system_datetime_formate = system_datetime_formate.concat(datetime_year_2_integer);
                break;
            case 'g':
                system_datetime_formate = system_datetime_formate.concat(datetime_hours_12_integer.replace(/^0+/, ''));
                break;
            case 'G':
                system_datetime_formate = system_datetime_formate.concat(datetime_hours_24_integer.replace(/^0+/, ''));
                break;
            case 'h':
                system_datetime_formate = system_datetime_formate.concat(datetime_hours_12_integer);
                break;
            case 'H':
                system_datetime_formate = system_datetime_formate.concat(datetime_hours_24_integer);
                break;
            case 'i':
                system_datetime_formate = system_datetime_formate.concat(datetime_minutes_integer);
                break;
            case 'T':
                system_datetime_formate = system_datetime_formate.concat(datetime_timezoon_string);
                break;
            case 'A':
                system_datetime_formate = system_datetime_formate.concat(datetime_caps_am_pm_string);
                break;
            case 'a':
                system_datetime_formate = system_datetime_formate.concat(datetime_small_am_pm_string);
                break;
            default:
                system_datetime_formate = system_datetime_formate.concat(gmt_datetime_formate[char_index]);

        }
    }
    $(this).html(system_datetime_formate);
});

function two_digit_convert(n) {
    return n > 9 ? "" + n : "0" + n;
}

【讨论】:

    猜你喜欢
    • 2021-05-02
    • 2018-04-13
    • 2013-03-24
    • 2023-03-18
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    相关资源
    最近更新 更多