Moment.js 2 سلاسل تاريخ مختلفة عندما أقوم بالتحليل باستخدام moment تعطي نفس القيمة

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

  •  23-12-2019
  •  | 
  •  

سؤال

أقوم بتحليل سلسلتين تاريخيتين مختلفتين

var d1  = '2014-02-01T00:00:00.000+0530'

var d2 = '2014-02-23T00:00:00.000+0530'   

عندما أقوم بتحليلها باستخدام moment

alert(moment(d1, 'YYYY-MM-dd"T"HH:mm:ss.fffffff"Z"').toDate());
alert(moment(d2, 'YYYY-MM-dd"T"HH:mm:ss.fffffff"Z"').toDate());

كلاهما يطبع السبت 1 فبراير 2014 xxxxxx

ما العيب بها؟؟

هنا هو الرابط للكمان الذي قمت بإنشائه

com.jsfiddle

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

المحلول

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

http://jsfiddle.net/K5ub8/7/

يحرر:المشكلة المحددة هي أنك تستخدم dd ليوم بدلا من DD. http://momentjs.com/docs/#/parsing/string-format/

هنا هو كمانك ثابت:http://jsfiddle.net/K5ub8/9/

ومع ذلك، لست متأكدًا بنسبة 100% بشأن أجزاء الثواني، أعتقد أنها كذلك SSS بدلاً من fffffff لكنني سأختبر هذا إذا كنت بحاجة إلى تلبية احتياجات أجزاء من الثواني.

يجب أن أذكر أنه إذا كنت تقوم بتحويله مرة أخرى إلى كائن تاريخ JavaScript على أي حال باستخدام toDate(), ، فأنت لا تحتاج حقًا إلى معلمة التنسيق اللحظي حيث سيتم تنسيق التاريخ بتنسيق تاريخ JSON.

أود أن أتساءل عن سبب رغبتك في إنشاء تاريخ منسق لحظة، ثم تحويله مرة أخرى إلى JavaScript، قد تكون الممارسة العادية هي تلقي تاريخ بتنسيق JavaScript، ثم إنشاء كائن لحظة يمكنك استخدامه لإجراء العمليات الحسابية وعرضه طريقة لطيفة وسهلة الاستخدام.

نصائح أخرى

إجابة بسيطة:كان التنسيق الخاص بك خارجًا قليلاً.

http://jsfiddle.net/K5ub8/8/

بعد التغيير والتبديل في الشكل ليكون 'YYYY-MM-DDTHH:mm:ss.SSSZZ' بدلا من 'YYYY-MM-dd"T"HH:mm:ss.fffffff"Z"' عملت بشكل جيد.عندما تحاول تصحيح مشكلات مثل هذه، فمن الجيد دائمًا الاحتفاظ بالتنسيق في متغير منفصل حتى تتمكن من استخدام نفس التنسيق الذي تحاول تحليله لعرض ما تحصل عليه.لو فعلت ذلك، للاحظت ذلك 'YYYY-MM-dd"T"HH:mm:ss.fffffff"Z"' تم العبث بها بسبب طباعتها 2014-01-Fr"T"11:32:03.fffffff"-08:00".ومن الواضح أن هذا ليس صحيحًا تمامًا.

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