يبدو أن سبب هذه المشكلة هو اللحظة (). تم تقديم 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"
كما ترى ، يعرض 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 الأصلية
التعليق الأكثر فائدة
قد يعمل ذلك من أجلك بعد ذلك:
أو
إذا كنت لا تهتم بالمنطقة الزمنية ، وتريد فقط عرض الوقت.