0

データベース サーバーが米国にあります。ユーザーはインドからエントリを作成します。日付はサーバーではなくクライアントに保存する必要があります。残念ながら、サーバーの日付はデータベースに保存されています。その日にのみ作成された現在の日付のエントリのみをユーザーに表示しています。問題は、ユーザーが午後 12 時 30 分 (クライアント マシン) までレコードを入力すると、ユーザーに表示されますが、午後 12 時 30 分 (クライアント マシン) 以降はエントリが表示されず、午後 12 時 30 分 (クライアント マシン) 以降に作成されたエントリのみが表示されます。表示されます。

例: 2013 年 6 月 5 日 (DD/MM/YYYY) から午後 12:30 までに行われたエントリは、クライアント マシンの日付が 2013 年 6 月 5 日 11:57 AM の場合に表示されますが、クライアント マシンの日付が 2013 年 6 月 5 日 12 の場合に表示されます。 :57 PM 入力されたエントリは表示されませんが、12:30 PM 以降に入力されたエントリが表示されます。上記のDBでは、例えば。作成日が 05/05/2013 として保存されている理由がわからない? .cs ファイル内:

public static DateTime GetIndianDate(DateTime dateTime)
        {
            return TimeZoneInfo.ConvertTimeBySystemTimeZoneId(dateTime, TimeZoneInfo.Local.Id,"India Standard Time").Date;

        }

今日のエントリのみを表示するには:

shipments = BLL.GetShipmentsByUserIdNDate(userId, Classes.Common.GetIndianDate(DateTime.Now.Date));

public static List<Shipment> GetShipmentsByUserIdNDate(Guid userId, DateTime dateTime)
        {
            Entities db = new Entities();
            List<Shipment> shipments = (from s in db.Shipments
                                        where s.UserId == userId && s.CreatedDate == dateTime
                                        select s).ToList();
            return shipments;
        }

挿入中:

shipment.CreatedDate = Classes.Common.GetIndianDate(DateTime.Now.Date);



public static DateTime GetIndianDate(DateTime dateTime)
        {
            return TimeZoneInfo.ConvertTimeBySystemTimeZoneId(dateTime, TimeZoneInfo.Local.Id,"India Standard Time").Date;

        }

では、クライアントマシンの日付をどのように保存しますか? 今でもサーバーの日付のみを保存しています。

助けて感謝!

4

1 に答える 1