Emad Saif نشر 3 سبتمبر 2022 أرسل تقرير نشر 3 سبتمبر 2022 أريد تحويل كائن Date إلى نص ولكن بصيغة YYYYMMDD ، وما أقوم به هو إستخدام مجموعة من التوابع مثل getMonth و getFullYear و getDay .. إلخ. هل توجد طريقة أفضل من هذه لتحويل كائن Date إلى صيغة YYYYMMDD مباشرة بدلًا من إستعمال العديد من التوابع معًا؟ 1 اقتباس
1 Wael Aljamal نشر 3 سبتمبر 2022 أرسل تقرير نشر 3 سبتمبر 2022 يمكن تطبيق الفكرة بشكل مختصر لكن مع وجود - بين القيم var d = new Date().toISOString().slice(0,10); YYYY-MM-DD لكن مع عدة استدعاءات للدوال يمكن تعديل الناتج ليصبح YYYYMMDD Date تعيد كائن التاريخ الحالي to ISO String تحول التاريخ للتنسيق التالي ثم نأخذ اول جزء من النص split ثم نستبدل - ب فراغ replaceAll let yourDate = new Date() // Sat Sep 03 2022 19:23:04 GMT+0300 (Eastern European Summer Time) yourDate.toISOString() // '2022-09-03T16:23:04.764Z' ^ .split('T')[0] .replaceAll('-','') '20220903' أو نستخدم slice لاقتطاع أول جزء var todayDate = new Date().toISOString().slice(0, 10); ^^^^^^^^^^^^ يمكن استخدام دالة من جيكويري datepicker وتمرير التنسيق المراد مع الوقت $.datepicker.formatDate('yymmdd', new Date()); اقتباس
1 Kais Hasan نشر 3 سبتمبر 2022 أرسل تقرير نشر 3 سبتمبر 2022 يمكنك استعمال التابع toLocaleDateString و الذي يقوم بأخذ العديد من الإعدادت الممكنة، في حالتك هذه يمكن استعماله بالشكل التالي: let options = { year: 'numeric', month: '2-digit', day: '2-digit' }; let todayDate = new Date(); let formattedTodayDate = todayDate.toLocaleDateString('en-GB', options); حيث هنا قمنا بتحديد الخيارات التي نريدها من أجل كل قسم، توجد خيارات كثيرة للتعديل على كل قسم من التاريخ و لكن هذه الخيارات هي المطلوبة من أجل الشكل الذي تريده. قمت باستعمال en-GB ﻷنها تقوم بوضع اليوم في الأول و من ثم الشهر على عكس en-US التي تضع الشهر أولاً ثم اليوم و بالتالي كما طلبت. اقتباس
1 علي عبد محسن نشر 3 سبتمبر 2022 أرسل تقرير نشر 3 سبتمبر 2022 (معدل) إستخدامك للدوال مسبقة التعريف هو الأمر الطبيعي في حال كنت ترمي لصنع برمجيات لا تعتمد بشكل كبير على أدوات خارجية third-party . من جهة أخرى توفر هذه الأدوات عليك الجهد والوقت وتعطيك الفرصة لتركز أكثر على صناعة حلول برمجية للمشكلات قيد الحل أو المشروع الذي تعمل عليه. للأجابة على سؤالك لابد أولا من تحديد فيما إذا كنت تستعمل javascript في المتصفح أم node.js. لكن لحسن الحظ يمكنك إستعمال مكتبة moment لأتمام المهمة في كلا الحالتين ولكن بطريقتي عمل مختلفتين جزئياً. في المثال التالي سنوضح كيفية تثبيت(أو إستيراد) المكتبة المذكورة في كل حالة وكما يلي: ... <!--في ملف HTML --> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js" ></script> <!-- إستيراد المكتبة من المصدر --> ... <script> function formateDate(){ let date= new Date(Date.now()) // تأريخ اليوم console.log("date now", date) let formatted =moment(date).format('DD-MM-yyyy hh:mm:ss') // تحويل الوقت/التأريخ الى الصيغة المطلوبة console.log("formated datetime", formatted) // => 02-09-2022 09:41:30 } </script> في حالة nodejs نقوم أولا بتثبيت المكتبة من خلال cmd أو terminal في المسار الرئيسي للمشروع حيث يوجد ملف package.json. نقوم بتنفيذ أحد الأمرين التاليين بحسب ما تستخدمه. /* $ yarn add moment إو $ npm install moment */ // الأن نقوم بألإستيراد const moment= require("moment") // //أو في حالة es6 //import moment from "moment" // نستدعي الدالة كما تم شرحه سابقاً let date= new Date("02-Sep-2022 09:41:30") let formatted =moment(date).format('DD-MM-yyyy') console.log("formated datetime", formatted) // => 02-09-2022 تم التعديل في 3 سبتمبر 2022 بواسطة علي محسن تنسيق النص اقتباس
السؤال
Emad Saif
أريد تحويل كائن Date إلى نص ولكن بصيغة YYYYMMDD ، وما أقوم به هو إستخدام مجموعة من التوابع مثل getMonth و getFullYear و getDay .. إلخ.
هل توجد طريقة أفضل من هذه لتحويل كائن Date إلى صيغة YYYYMMDD مباشرة بدلًا من إستعمال العديد من التوابع معًا؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.