-
المساهمات
4096 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
40
إجابات الأسئلة
-
إجابة عمر قره محمد سؤال في التحقق من وجود عنصر html بإستخدام JavaScript كانت الإجابة المقبولة
يمكنك فعل ذلك بإستخدام ال dom كالتالي :
<h1 id="myElementId"> العنصر الذي نريد التأكد منه </h1> <script> // نستدعي العنصر باستخدام الجافاسكريبت const myElement = document.getElementById("myElementId"); // نتحقق من وجود العنصر if (myElement) { // في حال كان موجود نطبع ان العنصر موجود console.log("my element exists") } else { // وإذا كان غير موجود نطبع انه غير موجود console.log("my element doesn`t exists") } </script>
-
إجابة عمر قره محمد سؤال في موقع ويب بصفحه واحده كانت الإجابة المقبولة
الآن فهمت ما تريده بالضبط،
لاحظ المثال السابق نفسه مع التعدي وقم بتجريبه على المتصفح :
<html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <header> <!-- أضفنا براميتر جديد لوظيفة تغيير الصفحة --> <li><a onclick="getPage(1 , true)">الصفحة الاولى</a></li> <li><a onclick="getPage(2 , true)">الصفحة الثانية</a></li> </header> <div id="jsContent"></div> <script> const htmlContainer = document.getElementById("jsContent"); function page1() { const section = document.createElement("section"); section.innerHTML = ` <h1> الصفحة الاولى </h1> <p> محتوى الصفحةالاولى </p> `; htmlContainer.append(section); } function page2() { const section = document.createElement("section"); section.innerHTML = ` <h1> الصفحة الثانية </h1> <p> محتوى الصفحةالثانية </p> `; htmlContainer.append(section); } function clearPages() { htmlContainer.innerHTML = ""; } function getPage(pageNumber, setHistory) { clearPages(); if (pageNumber === 1) { page1(); // وضعنا الشرط التالي كي لا يحدث التغير في السجل إلا عندما نستخدم الرابط //إختيارية "?page=1" القيمة if (setHistory) history.pushState({ page: 1 }, `page 1`, "?page=1"); } else { page2(); // وضعنا الشرط التالي كي لا يحدث التغير في السجل إلا عندما نستخدم الرابط //إختيارية "?page=2" القيمة if (setHistory) history.pushState({ page: 2 }, `page 2`, "?page=2"); } } // هذه حدث مبني في جافاسكريبت ينطلق عند تغيير السجل window.onpopstate = function (event) { console.log(event.state); // { page: 2 } or { page: 2 } const page = event.state.page; // وضعنا الشرط التالي لكي يستطيع المستخدم الرجوع للصفحات التي دخلها قبل دخول الموقع الخاص بنا // حيث انه من دون هذا الشرط سيحدث خطأ عندما يحاول التراجع ليخرج من الموقع الخاص بنا if (page) getPage(page, false); }; </script> </body> </html> يمكنك الاطلاع اكثر عن الوظائف المستخدمة History API و pushState و onpopstate event.
وفي حال كان هنالك المزيد من الاسئلة سأقوم بمساعدتك بالتأكيد.
-
إجابة عمر قره محمد سؤال في rel in html كانت الإجابة المقبولة
الـ attribute المسمى rel يستخدم في العنصر a ليخبر المتصفح معلومات عن هذا العنصر،
فمثلاً القيمة المدرجه هنا noreferrer تغير شكل الطلب المرسل للسيرفر عندما تقومين بالنقر على الرابط، فلا يرسل اية معلومات تتعلق بالموقع الخاص بك إلى السيرفر عند إرسال الطلب.
حيث من دون استخدام هذه القيمة سيقوم المتصفحة بإرسال معلومات تتعلق بالموقع التي تم منه فتح الصفحة في الـ header الخاص بالطلب.
والقيمة noopener تمنع الموقع الذي تم فتحه عبر هذا الرابط من الوصول لصفحة الـ html الخاصة بك، حيث لن يستطيع الوصول للعنصر Window.opener.
اعرف اكثر عن كل من noreferrer و noopener
بالتالي فهذه القيمة تساهم بحماية الموقع الخاص بك بالفعل.
-
إجابة عمر قره محمد سؤال في ما هو عمل target في JS كانت الإجابة المقبولة
لا ليس بإمكانك تنفيذ الامر من دونه، لأن هذا الكود على ما يبدو يحاول حذف اي عنصر موجود داخل العنصر body ولن تستطيع معرفة من هو العنصر الذي تم النقر عليه من دون ان تستخدم الـ target.
قد تستطيع التخلي عن استخدام الـ target عندما يكون العنصر الذي تريد الوصول إليه ثابت، مثل زر معين أو عنصر معين بالصفحة، ولكن عندما تريد ان تحصل على أي عنصر داخل الـ body تم النقر عليه مثل هذا المثال فستحتاج العنصر target.
لا يمكننا الاجابة بالعامية لأنه هنالك العديد من اللهجات العامية وذلك سيجعل الكلام غير مفهوم للمبرمجين اصحاب اللهجات المختلفة.
-
إجابة عمر قره محمد سؤال في طلب عمود معين في mongo db بدلا من احضار كل الاعمدة كانت الإجابة المقبولة
@Mohamed Montaser3
يمكنك فعل ذلك باستخدام ال query التالية :
db.products.find({}, {src:1, _id:0}) وهذه الـ query ستحضر الـ src فقط بدون الـ id، بينما التالية ستحضر الـ src والـ id فقط
db.products.find({}, {src:1}) وتستطيع كتابتها في الـ mongodbCompass كما في الصور :
إذا تريدها العمود المعين مع الـ id :
إذا كنت تريده من دون الـ id :
-
إجابة عمر قره محمد سؤال في كيف ومن أين أتعلم الخوارزميات كانت الإجابة المقبولة
نعم توفر تعلم الخوارزميات في دورة علوم الحاسوب حيث يوجد شرح للخوارزميات و قواعد البيانات و بنى المعطيات وغيرها.
كما هنالك مجموعة المقالات عن الخوارزميات في في الاكاديمة وتسمى الخوارزميات للمحترفين، يمنك تعلم الخوارزميات عن طريقتها.
ويمكنك الاستفادة من قسم الخوارزميات في موسوعة حاسوب حيث يوجد شرح مفصل للخوارزميات.
وهنالك أيضاً العديد من المقالات المنفردة عن الخوارزميات مثل :
-
إجابة عمر قره محمد سؤال في جلب لبيانات من الخادم JavaScript Basics كانت الإجابة المقبولة
وعليكم السلام ورحمة الله وبركاته،
قد تكون المشكلة من استدعاء الـ public رغم عدم وجود مجلد يدعى public
.جرب حذف السطر الخاص بـ public و اعد تشغيل السيرفر.
ليس هنالك مشلكة في باقي الكود.
في حال بقيت المشكلة قم بمشاركة ملفا المشروع بالكامل.
-
إجابة عمر قره محمد سؤال في مشكلة في أحداث السحب والافلات في الهاتف كانت الإجابة المقبولة
هل يمكنك مشاركة ملفاة المشروع بالكامل، حتى نستطيع الاطلاع عليه،
لا يبدو هنالك خطأ في الصورة التي شاركتها.
-
إجابة عمر قره محمد سؤال في لماذا يكتب None بعد النتيجة python كانت الإجابة المقبولة
الشكل الصحيح للاستدعاء هو :
text = input() word = input() def search(text, word): if word in text: print("Word found") else: print("Word not found") search(text, word) اي استدعاء الوظيفة خارج الـ print.
و الـ None هنا تظهر لأن الوظيفة search لا تعيد اي قيمة، وبالتالي ستعيد None بشكل افتراضي عند استدعائها داخل الـ print.
-
إجابة عمر قره محمد سؤال في عمل كود لاحتساب النقاط بلغة جافا سكربت كانت الإجابة المقبولة
هذه المعادلة تكتب بالشكل التالي في js :
const X = 95.4; const Y = 4; const Z = 90.2; const H = 100; const F = 2282022; console.log((X / Y) * 100 * 0.2 + Z * 0.2 + H * 0.4 + F * 2); // اي ان المعادلة تكون بالشكل (X / Y) * 100 * 0.2 + Z * 0.2 + H * 0.4 + F * 2 وهذه مطابقة تماما للمعادلة التي ارفقتها :
X÷Y×100×0.20+Z×0.20+H×0.40+F×2
-
إجابة عمر قره محمد سؤال في التعامل مع API الطقس مع node js كانت الإجابة المقبولة
المشكلة في داخل الملف app.js داخل الـ public :
حيث انك تقوم بالتحقق من قيمة الـ Zip_code مرة واحدة عند تحميل الصفحة، ولذلك ستكون قيمته فارغة دائماً، بينما الصحيح هو انه يجب التحقق منه قبل تنفيذ الوظيفة الخاصة بجلب معلومات التقص.
لحل المشكلة عليك وضع الكود التالي :
const Zip_code = document.getElementById('zip').value; داخل الوظيفة generate :
function generate() { const Zip_code = document.getElementById('zip').value; const madeurl = `${baseURL}${Zip_code}${apiKey}`; console.log(madeurl); retrieveData(madeurl); } وبالتالي يتم التحقق من قيمة الـ Zip_code قبل انشاء الـ madeurl.
وهذا كفيل بحل المشكلة
-
إجابة عمر قره محمد سؤال في عمل برنامج محاسبي كانت الإجابة المقبولة
يمكنك انشاء مشروع على مستقل لتنفيذ هذا البرنامج،
ماعليك فعله هو إضافة مشروع يحتوي معلومات البرنامج وما تريده و الميزانية المخصصة للمشروع و الوقت وسيقوم المبرمجين بتقديم عروضهم لتنفيذ المشروع الخاص بك.
ويمكنك حينها إختيار العرض المناسب بالنسبة لك.
-
إجابة عمر قره محمد سؤال في مشكله في استدعاء فانكشن في الجافاسكريبت كانت الإجابة المقبولة
المشكلة هي ان الوظيفة cx ليست هي المسؤولة عن ظهور القلوب على الشاشة،
ولكن المسؤول عن ذلك هو الوظيفة التالي :
let er = setInterval(() => { cx(); }, 3); setInterval(() => { clearInterval(er) }, 3000); والتي انت جعلتها تعمل عند النقر على الزر randam heart في هذا الجزء من الكود :
bttn.addEventListener("click",(params) => { let er= setInterval(() => { cx(); } , 3); setInterval(() => { clearInterval(er) }, 3000); }) وهذا الجزء من الكود وضعته في الوظيفة cx نفسها وهذا خطأ.
الصحيح ان يكون شكل الكود كالتالي :
let cx = () => { let contenerheart = document.getElementById("contenerheart"); let hhart = document.createElement("div"); hhart.classList.add("hart"); hhart.innerText = "❤️"; contenerheart.append(hhart); console.log(contenerheart); hhart.style.left = `${Math.random() * 100}%` hhart.style.animationDuration = `${Math.random() * 2}s` }; const doCx = () => { let er = setInterval(() => { cx(); }, 3); setInterval(() => { clearInterval(er) }, 3000); } let bttn = document.getElementById("bttn") bttn.addEventListener("click", (params) => { doCx() }) ولجعل الزر randam يعمل يجب استدعاء الـ doCx بدلا عن الـ cx كالتالي :
btn.addEventListener("click", () => { freme.innerHTML = inner[l]; l++; if (l > inner.length - 1) { l = 0; } doCx() }); فيصبح ملف الجافاسكريبت بالكامل بالشكل التالي : index.js
-
إجابة عمر قره محمد سؤال في الاقتراحات الخاصة بلغة html في Visual Studio Code كانت الإجابة المقبولة
حسنا جرب الخطوات التالية :
ثم ابحث عن الخاصية :
"emmet.showSuggestionsAsSnippets": true, في حال لم تجدها قم بإضافتها وكذلك قم بإضافة الخواص:
"emmet.triggerExpansionOnTab": true, "files.associations": {"*.html": "html"}, "emmet.useInlineCompletions": true, ملاحطة قد يكون الإعداد : files.associations موجود مسبقاً في الملف فعند ذلك قم بإضافة الاعداد بالشكل التالي :
// في حال كان بالشكل التالي "files.associations": { "*.sass": "scss" }, // نجعله كالشكل التالي "files.associations": { "*.sass": "scss", "*.html": "html" },
-
إجابة عمر قره محمد سؤال في بعد الوصول للميكرفون وتسجيل الصوت كيف يمكن ارسال ملف الصوت للسيرفر جافا سكربت كانت الإجابة المقبولة
لفعل ذلك عليك ارسال الـ Blob الذي تنشئه عند كل تسجيل بالشكل التالي :
// رابط الباك اند الذي سيستقبل الاتصال var url = "http://localhost:3000" || "your endPoint url"; async function send() { // انشأنا فورم باستخدام الجافاسكريبت const myForm = new FormData() // ارفتنا البلوب "تسجيل الصور" بإسم معين سنقوم بتلقيه من طرف السيرفر myForm.append("audio", audioBlob) // هنا نقوم بإرسال الفورم باستخدام ادات الارسال المبنية بالجافاسكريبت try { const response = await fetch(url, { method: 'POST', body: myForm }); console.log(response); } catch (error) { console.log(error); } } بعد انشاء هذه الوظيفة عليك استدعائها كلما نقر المستخدم على stop كالتالي :
function stops() { mediaRecorder.addEventListener("stop", () => { audioBlob = new Blob(audioChunks, { type: mediaRecorder.mimeType }); // ******** هنا نقوم باستدعاء الوظيفة الخاصة بنا ******** // لاحظ ان موقعها بعد تعريف البلوب لأنها ستقوم بإرساله send() // ***************************************** audioUrl = URL.createObjectURL(audioBlob); mainStream.getTracks() // get all tracks from the MediaStream .forEach(track => track.stop()); // stop each of them // تحميل ملف الصوت let a = document.getElementById("a"); a.href = audioUrl; a.download = "recording.webm"; a.innerText = 'click me to save file'; //document.body.appendChild(a); //a.click(); }); mediaRecorder.stop(); } الملف بعض اضافة التعديل المطلوب : التحميل الآن
-
إجابة عمر قره محمد سؤال في ال Back-end الخاص بموقعي لايعمل مع استضافة Netlify كانت الإجابة المقبولة
وعليكم السلام ورحمة الله،
لا أعلم أن netlify تدعم الـ backend ولكنها تدعم ما يسمى بالـ dynamic serverless functions.
ومن كلامك يبدو انك قمت بإدراج الـ endpoints في ال frontend بشكل ثابت على انها localhost.
يمكنك رفع الـ backend على heroku (افضل منصة مجانية للـ backend) و بعد ذلك تعديل الـ endpoints الخاضة بالـ frontend وبعدها ترفع الـ frontend على netlify.
طبعاً ممكن ان تختلف خيارات الرفع بحسب الـ backend الخاص بك.
-
إجابة عمر قره محمد سؤال في معالجة مشكل :hover في css3 كانت الإجابة المقبولة
جرب الكود التالي :
.volume-icon:hover + .volume-progress{ transform: scale(1); } في حال لم يعمل قم بمشاركة ملفات المشروع.
-
إجابة عمر قره محمد سؤال في استفسار حول Arrow function في javascript كانت الإجابة المقبولة
الفرق هو ان التي تستخدم الـ () تقوم بعمل return تلقائي لمحتويات الوظيفة، يمعنى :
// هذه الوظيفة () => { return(....) } // يمكن اختصارها بالشكل () => (....) وللفهم بشكل اكبر نأخذ المثال التالي :
() => ({foo: "a"}) // returning {foo: "a"} // لكتابتها بالشكل التقليدي ستكتب () => {return({foo: "a"})} ويمكنك التعلم اكثر عن الدوال السهمية عبر موسوعة حاسوب من هنا
-
إجابة عمر قره محمد سؤال في css animation كانت الإجابة المقبولة
يمكن عمل التحريك الذي تطلبينه باستخدام js، وذلك بإضافة class خاص بالتحريك لل div عند النقر على الرابط :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!-- لاحظي كيف اضفنا الوظيفة الخاصة بإضافة الكلاس للرابط --> <a href="#mySection" onclick="doTheAnimation()">إضغط هنا للإنتقال إلى قسم الخدمات </a> <!-- اهم شئ هنا هو إضافة الايدي --> <div id="mySection" style="height: 400px; margin-top:800px ;background-color: red;"> <h2 style="font-size: xxx-large; padding:20px ;">قسم الخدمات</h2> </div> <!-- يمكنك إضافة الجافاسكربت لصفحة مستقلة أو وضعها هنا كما فعلت أنا --> <script> // الوظيفة الخاصة بإضافة الكلاس const doTheAnimation = () => { // هنا نقوم بإمساك الديف الخاص بنا const mySection = document.getElementById("mySection"); // وهنا نقوم بإضافةا لكلاس الخاص بالتحريك mySection.classList.add("animationClass"); } </script> <!-- يفضل إضافة الستايل لملف سي اس اس منفصل --> <style> /* انشاء التحريك الذي نريده */ /* هنا قمت بإنشاء تحريك للون كمثال فقط */ @keyframes example { from { background-color: red; } to { background-color: yellow; } } /* نضيف التحريك للكلاس الذي عرفناه باستخدام الجافاسكريبت */ .animationClass { animation-name: example; animation-duration: 4s; } </style> </body> </html> حيث نقوم بتنفيذ الوظيفة doTheAnimation عند النقر على الرابط والتي تقوم بإضافة الـ class المسمى animationClass للdiv خاصتنا، وفي النهاية قمنا بإضافة animation لهذا الـ class باستخدام css.
-
إجابة عمر قره محمد سؤال في كيفية الحصول على طول وعرض مكون قبل عرضه في React؟ كانت الإجابة المقبولة
إن كان ما تريده هو معرفة قياس الصفحة وعرض مكونات مختلفة حسب قياس الصفحة بشكل مشابه للـ media query فهنالك المكتبة التالية : react-responsive
أما اذا كان ما تريده هو معرفة عرض العنصر ذاته فهذا يكون حسب القياس الذي اعطيته انت للعنصر فإذا كنت اعطيته width : 100% سيكون عرضه يساوي عرض الصفحة وطوله سيختلف حسب عرض الصفحة أما إذا حددت الـ width برقم معين سيكون عرضه هو العرض الذي حددته وسيكون له طول معين يمكنك استخراجه بسهولة.
ولا يمكنك حساب الطول والعرض بدون عمل render على المتصفح.
وبعد قول هذا يمكنك تأخير عرض عنصر معين حتى تعلم عرض وطول العنصر الاب الخاص به وبعد ذلك التحكم بالابن حسب هذه القياسات وكمثال :
import React, { Component } from 'react'; export default class Example extends Component { // هنا نعرف المتغير الذي يعبر عن القياسات ونجعله فارغاً state = { dimensions: null, }; // هنا نضيف القياسات الخاصة بالمتغير ونقوم بإعادت التحميل componentDidMount() { this.setState({ dimensions: { width: this.container.offsetWidth, height: this.container.offsetHeight, }, }); } // هذه الوظيفة الخاصة بعرض الابن بالاعتماد على قياسات الاب renderContent() { const { dimensions } = this.state; return ( <div> width: {dimensions.width} <br /> height: {dimensions.height} </div> ); } render() { const { dimensions } = this.state; return ( //للحصول على القياسات الخاصة بالاب ref هنا استخدمنا الـ <div className="Hello" ref={el => (this.container = el)}> // هنا نفحص إن كان هنالك قياسات ام لا وفي حال وجودها نقوم باستدعاء دالة طباعة الابن {dimensions && this.renderContent()} </div> ); } }
-
إجابة عمر قره محمد سؤال في هل هناك api استطيع الاتصال به ليقوم بجلب جميع المدن التي في دولتي ؟ كانت الإجابة المقبولة
وعليكم السلام ورحمة الله،
نعم هنالك مثل هذا الـ api و يمكنك الوصول له بالشكل التالي:
var axios = require("axios"); var data = { iso2: "SY" }; var config = { method: "post", url: "https://countriesnow.space/api/v0.1/countries/cities", headers: {}, data: data, }; axios(config) .then(function (response) { console.log(response.data); }) .catch(function (error) { console.log(error); }); ويمكنك الوصول لرمز الـ iso2 الخاص ببلدك من خلال الرابط التالي
https://countriesnow.space/api/v0.1/countries/currency
وبعد ذلك قومي باستبدال SY التي ترمز لسوريا بال iso2 الخاص ببلدك.
في حال اردت جميع البلدان وجميع المحافظات يمكنك الوصول إليهم من خلال الـ api التالي :
var axios = require('axios'); var config = { method: 'get', url: 'https://countriesnow.space/api/v0.1/countries', headers: { } }; axios(config) .then(function (response) { console.log(JSON.stringify(response.data)); }) .catch(function (error) { console.log(error); });
-
إجابة عمر قره محمد سؤال في مشكلة أثناء تنفيذ الشرط في جافاسكريبت كانت الإجابة المقبولة
المشكلة انك تضع الإشارة ; بعد العبارة الشرطية :
// الخطأ هوا كتابة الشرط بالشكل if(something);{doSomething} // والصحيح هو أن تكتبه بالشكل التالي if(something){doSomething} // بدون إستخدام الـ ; بين عبارة الشرط والوظيفة
-
إجابة عمر قره محمد سؤال في كيفية اضافة selectpicker للمدن والدول HTML كانت الإجابة المقبولة
نعم بالفعل يوجد مثل هذه المكتبة وهي : country-region-dropdown-menu.
وهذه مكتبة مجانية بالكامل تدعم اللغة العربية وجميع الدول والمناطق، ويمكن استخدامها بسهولة.
كما انها تدعم ظهور الاعلام عند تحديد العنصر وعدة اشكال من الـ selectpicker.
يمكنك مطالعة المثال التالي المبني بهذه المكتبة : example.zip
ملاحطة : يجب تشغيل المثال على liveServer.
-
إجابة عمر قره محمد سؤال في كيفية إضافة أكثر من تابع باني constructor في صنف class واحد في JavaScript؟ كانت الإجابة المقبولة
الجافا سكريبت لا تدعم الـ function overloading أي أنه لا يمكن تعريف أكثر من وظيفة بنفس الاسم ولكن بـ parameters مختلفة وهذا يتضمن الـ constructor كذلك.
ولكن يمكنك التغلب على هذه المشكلة بعدة طرق منها إنشاء وظائف static لبناء العناصر مثل التالي:
class MyClass { constructor(a,b,c,d){ this.a = a this.b = b this.c = c this.d = d } static BAndCInstance(b,c){ return new MyClass(null,b,c) } static BAndDInstance(b,d){ return new MyClass(null,b, null,d) } } //Instance that has just a const myclass=new MyClass(a) //Instance that has b and c params const instanceWithBAndC = MyClass.BAndCInstance(b,c) //Instance that has b and d const instanceWithBAndD = MyClass.BAndDInstance(b,d) أو يمكنت التحقق من ال parameters من داخل الـ constructor و تعديل البيانات تبعاً لذلك:
class MyClass { constructor(a,b){ if (a===undefined) a= 'how are you'; if (typeof(b)==='string') this._constructInSomeWay(a, b); } _constructInSomeWay(a,b){ console.log({a,b}) // do some thing } } ويمكن هنا إضافة العدد الذي تريده من الـ constructor حسب نوع المعلومات القادمة.
اقرأ أيضاً :
-
إجابة عمر قره محمد سؤال في كيف أغير ظهور التاريخ بهذا الشكل ؟ كانت الإجابة المقبولة
لحل مشكلة التاريخ لديك خيارين، الأول هو استخدام ال Date المبني بشكل افضراضي في js واستخدام الفورمات المخلتفة التي يقدمها للتواريخ لإظهاره بالشكل التي تريده، مثال :
const d = new Date("التاريخ القادم من قاعدة البيانات"); let text = d.toLocaleDateString(); console.log(text); // 12/12/2012
حيث الوظيفة السابقة تعرض التاريخ بالشهر واليوم والسنة، وهنالك الـ ()toLocaleTimeString لعرض الوقت بالساعات والدقائق والثواني، وكذلك ()toLocaleString لعرض التاريخ مع الوقت.
أو بإمكانك استخدام مكتبة جاهزة تتيح العديد من الوظائف الخاصة بعرض الوقت وهي : momentjs
وتقوم بتنزيلها بالشكل :
npm install moment --save ومن ثم استدعائها بالشكل :
import moment from 'moment'; واستخدامها :
moment().format('MMMM Do YYYY, h:mm:ss a'); // June 6th 2022, 9:49:49 am moment().format('dddd'); // Monday moment().format("MMM Do YY"); // Jun 6th 22 moment().format('YYYY [escaped] YYYY'); // 2022 escaped 2022 moment().format(); // 2022-06-06T09:50:06+03:00 بالنسبة للسؤال الثاني فالمشكلة هي من استدعاء البيانات من قاعدة البيانات فيجب إضافة شرط أن يكون اسم المستخدم يساوي اسم المستخدم التي تريد البيانات الخاصة به.