سؤال

أنا أستخدم التقويم من Yahoo UI كما يلي:

caldate = (caldate.getMonth () + 1) + '/' + caldate.getDate () + '/' + caldate.getwisherlyear () ؛

يعرض هذا أ MMDDYYYY شكل.

أريد تغيير هذا التنسيق إلى YYYY-MM-DD حتى أتمكن من إدراجه في قاعدة بيانات MySQL.لقد قمت بتغيير الكود إلى:

caldate = caldate.getlyear () + '-' + (caldate.getMonth () + 1) + '-' + caldate.getDate () ؛

لقد نجح الأمر ولكن المشكلة الآن هي أنه عندما أرغب في تغيير التاريخ المحدد، لا يعرض التقويم التاريخ بل يعرضه بدلاً من ذلك NAN.

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

المحلول

ويجب عليك تغيير تنسيق التاريخ فقط قبل أن يتم إدراجها على جانب الملقم، والسماح للجانب العميل والتنسيق الذي كان يريد، وتغيير التاريخ حول لاحقا.

نصائح أخرى

وانها عادة أفضل لتمرير التاريخ إلى النهاية الخلفية ك الطابع الزمني يونكس وتحويله في قاعدة البيانات نفسها. في التعليمات البرمجية حيث كنت بناء بيانات النشر الخاص بك لخادم، وكنت تمرير شيء من هذا القبيل:

var t = calDate.getTime()/1000;

لاحظ القسمة 1000. هذا مطلوب لأن الطوابع الزمنية جافا سكريبت هي في أجزاء من الثانية، في حين يتطلب الخلية ثواني.

في بيان SQL الخاصة بك، عليك أن تمر الطابع الزمني كما هو، واستخدام وظيفة FROM_UNIXTIME لتحويلها إلى الشكل المطلوب الخاص بك:

INSERT INTO ... VALUES ( FROM_UNIXTIME($t), ...)

وبطبيعة الحال سيكون هناك بعض التعليمات البرمجية في بين الذي يحوله t من جافا سكريبت في $t بالخط نهاية الخلفي الخاص بك، ومن ثم يمر ذلك إلى SQL.

والآن، إذا كنت حقا بحاجة إلى تنسيق مواعيد على الواجهة الأمامية، يمكنك الاستفادة من المرافق YAHOO.util.Date في متناول يدي. فقط أن تفعل شيئا من هذا القبيل:

alert(YAHOO.util.Date.format(calDate, {format: "%Y-%m-%d" }));

وأسهل بكثير من الدعوة getFullYear, getMonth، وgetDate

كتب bluesmoon أيضًا مقالتين ممتازتين على YUIBlog حول موضوع تنسيق التاريخ:

  1. http://yuiblog.com/blog/2009/02/11/date-formatting-pt1-2/
  2. http://yuiblog.com/blog/2009/02/25/date-formatting-pt2/

-إيريك

            cal1.cfg.setProperty("DATE_FIELD_DELIMITER", "-");

            cal1.cfg.setProperty("MDY_YEAR_POSITION", 1);
            cal1.cfg.setProperty("MDY_MONTH_POSITION", 2);
            cal1.cfg.setProperty("MDY_DAY_POSITION", 3);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top