<p>لحظة (). toISOString () خطأ ، إذا مررت في 18 ، فإنها ترجع 17</p>

تم إنشاؤها على ٢٣ يوليو ٢٠١٣  ·  6تعليقات  ·  مصدر: moment/moment

يبدو أن سبب هذه المشكلة هو اللحظة (). تم تقديم toISOString () هنا:

http://momentjs.com/docs/#/displaying/as -iso-string /
لحظة (). toISOString () ؛

قد أفعل ولكن في وحدة التحكم إذا قمت بما يلي:

    n = moment.utc(new Date('2013-07-18T00:00:00+01:00'))

ستعود:

 Thu Jul 18 2013 00:00:00 GMT+0100 (GMT Daylight Time)

الآن إذا اتصلت بـ ISOString ( ) عليه ، يصبح التاريخ فجأة هو 17:

  n.toISOString()

ما سبق سيعيد اليوم السابع عشر بدلاً من الثامن عشر:

  "2013-07-17T23:00:00.000Z"

التعليق الأكثر فائدة

قد يعمل ذلك من أجلك بعد ذلك:

> moment().format('YYYY-MM-DD[T]HH:mm:ss.SSSZZ')
'2013-07-23T14:54:20.176-0700'

أو

> moment().format('YYYY-MM-DD[T]HH:mm:ss.SSS')
'2013-07-23T14:54:20.176'

إذا كنت لا تهتم بالمنطقة الزمنية ، وتريد فقط عرض الوقت.

ال 6 كومينتر

كما ترى ، يعرض toISOString دائمًا الوقت بالتوقيت العالمي المنسق (بالإضافة إلى عرضه بطريقة معينة).

ichernev ، أنا لا أفهم وجهة نظرك تمامًا؟ هل يعني العرض بطرق معينة أنني يجب أن أحصل على 18 عندما أتجاوز المركز 17؟ كيف أعود في المرتبة 18 وأعود إلى المرتبة 18؟ شكرا.

قد يعمل ذلك من أجلك بعد ذلك:

> moment().format('YYYY-MM-DD[T]HH:mm:ss.SSSZZ')
'2013-07-23T14:54:20.176-0700'

أو

> moment().format('YYYY-MM-DD[T]HH:mm:ss.SSS')
'2013-07-23T14:54:20.176'

إذا كنت لا تهتم بالمنطقة الزمنية ، وتريد فقط عرض الوقت.

ichernev ، شكرا جزيلا.

يمكنك استخدام معلمة keepOffset لـ toISOString:

toISOString (keepOffset ؟: منطقي): string؛

=>

لحظة (). toISOString (صحيح)

هل هذا حقا صحيح؟

moment('1970-01-01').toISOString()

النواتج:

1969-12-31T23:00:00.000Z

أعتقد أن معظم الأشخاص الذين يمرون في تاريخ محدد إلى لحظة وتنسيقه باعتباره toISOString يتوقعون ألا يتغير التاريخ. لماذا لا يكون KeepOffset افتراضيًا على صحيح إذا كان يجعل الوظيفة تتصرف بطريقة أكثر قابلية للتنبؤ؟

أعلم أن اللحظة تتوافق مع وظيفة JavaScript Date toISOString الأصلية

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات