ما هي أفضل طريقة للكشف عن تخزين التوقيت العميل من التطبيق على شبكة الإنترنت ؟

StackOverflow https://stackoverflow.com/questions/179834

  •  05-07-2019
  •  | 
  •  

سؤال

لدي متعددة التوقيت تطبيق ويب الذي يقوم بتخزين جميع قيم التاريخ والوقت في UTC في قاعدة البيانات ، عندما الإجراءات التي تحدث على الخادم, أنا يمكن بسهولة تحويل الوقت إلى التوقيت العالمي.

ومع ذلك ، عندما يدخل عميل الوقت أو الفترة الزمنية ، ما هي أفضل طريقة للكشف عن المتجر ؟

أنا حاليا القيام بما يلي:

  1. الحصول على قيمة تاريخ.getTimezoneOffset() (جافا سكريبت)
  2. بعد ذلك إلى تعليمات برمجية من جانب الخادم عبر ICallbackEventHandler على الصفحة.
  3. تخزين هذه القيمة في الدورة
  4. على أي طلب لاحق ، وحساب الإدخال/الإخراج قيمة استخدام العميل التوقيت.

بغض النظر عن التنفيذ الفعلي ، هذا يبدو وكأنه في الحل الأنيق.هل لدى أحد أفضل طريقة ؟

هل كانت مفيدة؟

المحلول

كنت تفعل شيئا مشابها جدا, ولكن أعتقد الآن أنا أفضل أن استخدام جافا سكريبت لتحويل جميع الأوقات المحلية على جانب العميل.الخادم سوف تعطي جميع الأوقات بالتوقيت العالمي المنسق في إنشاء صفحة جافا سكريبت سيتم تحويله بمجرد تحميل الصفحة.

هذا يزيل اللبس على برمجية من جانب الخادم ، كما تعرف دائما ما هو الوقت (UTC).على جانب العميل أنا باستخدام مسج و كل() وظيفة تنسيق جميع قيم الوقت في آن واحد.أكتب كل الأوقات unix الوقت في حقل مخفي لجعل هذا سهل عملية مع مسج.

فقط مع هذا الأسلوب هو أن) لا لديك تاريخ/وقت التنسيق الروتينية بعد في جافا سكريبت ، و ب) إذا قام المستخدم جافا سكريبت إيقاف ثم لا يعمل.

نصائح أخرى

هل يمكن استخدام "رأس" ملك HttpRequest كائن الاستعلام "إذا المعدلة منذ" رأس المرسلة من قبل العميل.هذا الرأس يجب أن تحتوي على تاريخ في شكل ويشمل ذلك التوقيت من العميل ، مثل هذا:

If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT

بسيطة فرعية استخراج سوف تعطيك التوقيت رمز.ومع ذلك, أنا لا أخشى على جميع المتصفحات متماسكة في إرسال هذا رأس ، لذلك يجب أن التجربة قليلا عن ذلك.

التحيات ، فابريزيو

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top