تبدیل شی 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; 
    }

 

آیا این نوشته برای شما مفید بود ؟

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

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