2

UI でタイムゾーンを選択するドロップダウンがあります。 ここに画像の説明を入力 Windows タイムゾーン設定ドロップダウン リストから取得したドロップダウン データ ここに画像の説明を入力

ログインしているユーザーがタイムゾーンを選択した場合、選択したタイムゾーン形式に従ってすべての日時フィールドを DST で表示する必要があります。

私のテーブル構造は ここに画像の説明を入力

Typescript ts コード

import * as moment from 'moment';
import * as momenttimezone from 'moment-timezone';

private ConvertServerTimezoneToClient(dateTime: string, dateFormat: string, timeFormat: string, timezoneFormat: string, isDstzone: string) {
    timeFormat = timeFormat.toString().indexOf('tt') > -1 ? timeFormat.replace('tt', 'a') : timeFormat;
    var convertedTime = '';
    if (timezoneFormat && timezoneFormat != '' && timezoneFormat != "null") {
        if (isDstzone == 'true') {
            momenttimezone.tz.add(''); // need to map
            momenttimezone.tz.link(''); // need to map
            var zoneName = ''; // need to map
            var isDstDate = momenttimezone.tz(new Date(dateTime), zoneName).isDST();
            if (isDstDate) {
                convertedTime = moment(dateTime).zone(timezoneFormat).add(1, 'hours').format(dateFormat + ' ' + timeFormat);
            } else {
                convertedTime = moment(dateTime).zone(timezoneFormat).format(dateFormat + ' ' + timeFormat);
            }
        }
        else {
            convertedTime = moment(dateTime).zone(timezoneFormat).format(dateFormat + ' ' + timeFormat);
        }
    }
    return convertedTime
}

Moment js にはより多くのタイムゾーン形式があります https://github.com/moment/moment-timezone/blob/develop/data/packed/latest.json

Windows のタイムゾーンを瞬間のタイムゾーンにマップする方法。UI ベース コードは aurelia typescript を使用しています。助けが必要。

4

1 に答える 1