تبدیل شی NET DateTime به شی تاریخ Javascript سی شارپ #C

کد با پلتفرم بوی - کد سی شارپ
کد با پلتفرم بوی – کد سی شارپ

فرض کنید شی DateTime را از SQL Server بازیابی کرده ایم و آن را از طریق JSON (با استفاده از $ .ajax) به Javascript منتقل می کنیم. حالا چنانچه بخواهیم مقدار دریافت شده را تبدیل کنیم راه حل چیست ؟

روش اول

پلتفرم بوی اجرا شدن خروجی صحیح قطعه کد زیر را تایید می کند

قطعه کدی که در زیر مشاهده می کنید توسط برنامه کامپایلر به جهت تست آزمایش شده و خروجی صحیح مدنظر را بدست آورد.

function toDateFromJson(src) {
    return new Date(parseInt(src.substr(6)));
}

روش دوم

می توانید از کتابخانه regex استفاده کنید :

var msDateRegex = /"\\\/Date\((-?\d+)\)\\\/"/g;

var msDateJsonConverter = function(data) {
    return JSON.parse($.trim(data.replace(msDateRegex, '{"__date":$1}')), function(key, value) {
        return value && typeof value.__date == "number" ? new Date(value.__date) : value;
    });
};

$.ajaxSetup({ converters: { "text json": msDateJsonConverter } });

روش سوم

این به این دلیل است که JSON به طور استاندارد قالب DateTime ندارد – توسعه دهندگان آزاد هستند که آن را همانطور که می خواهند علامت گذاری کنند.از کد زیر استفاده کنید :

var converted = eval(original.replace(/\/Date\((\d+)\)\//gi, 'new Date($1)'));

روش چهارم

این قطعه کد را امتحان کنید.

function (val) {
        var reISO = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/;
        var reMsAjax = /^\/Date\((d|-|.*)\)[\/|\\]$/;


            if (val)) {
                        var a = reISO.exec(val);
                        if (a) {
                            val = new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6]));
                            return val;
                        }
                        a = reMsAjax.exec(val);
                        if (a) {
                            var b = a[1].split(/[-+,.]/);
                            val = new Date(b[0] ? +b[0] : 0 - +b[1]);
                            return val;
                        }
                    }

       return val; 
    }

کدهای بیشتر - سی شارپ

آیا این مطلب برای شما مفید بود؟

بله
نه اصلا
از اینکه بازخورد خود را در اختیار ما گذاشته اید متشکریم. تا بعد 🙂

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *