Azure - dlaczego DateTime.Now na hostingu zwraca mi wartości różniące się o dni lub nawet miesiące?

0

Witam serdecznie.
Opublikowałem Aplikację NetCore 3.1 wraz z bazą danych SQL SERVER na platformie Azure. Nie było problemów do momentu testowania czy wszystko działa tak, jak powinno i tu zaczęły się schody:
W kalendarzu wyłączam możliwość ustawienia daty niższej niż dzień dzisiejszy tym skryptem:

<script type="text/javascript">
        $(function () {
            var array = @Html.Raw(Json.Serialize(Model.DisabledDates));
            
            $("#datepicker").datepicker({
                minDate: "@DateTime.Now",
                beforeShowDay: function (date) {
                    var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
                    return [array.indexOf(string) == -1]
                },
            });
        });

        $.datepicker.regional['pl'] = {
            closeText: 'Zamknij',
            prevText: '<Poprzedni',
            nextText: 'Następny>',
            currentText: 'Dziś',
            monthNames: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec',
                'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],
            monthNamesShort: ['Sty', 'Lu', 'Mar', 'Kw', 'Maj', 'Cze',
                'Lip', 'Sie', 'Wrz', 'Pa', 'Lis', 'Gru'],
            dayNames: ['Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota'],
            dayNamesShort: ['Nie', 'Pn', 'Wt', 'Śr', 'Czw', 'Pt', 'So'],
            dayNamesMin: ['N', 'Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So'],
            weekHeader: 'Tydz',
            dateFormat: 'dd.mm.yy',
            firstDay: 1,
            isRTL: false,
            showMonthAfterYear: false,
            yearSuffix: ''
        };
        $.datepicker.setDefaults($.datepicker.regional['pl']);
    </script>

Gdy testuję działanie lokalnie wszystko działa bez zastrzeżeń. Natomiast gdy uruchomię stronę z hostingu otrzymuję następujące wyniki:
14.07.2020r. godz. ok. 10:15 (kliknięcia w kalendarz co około 5 sekund)
1.
screenshot-20200714101604.png
2.
screenshot-20200714101655.png

DateTime.Now po prostu szaleje.
Dodałem w ustawieniach usługi flagę:
screenshot-20200714101744.png lecz to nic nie pomogło. Proszę o pomoc

EDIT:
Konsola azure zwraca mi poprawny czas:
screenshot-20200714102117.png

0

To, do czego doszedłem:
Gdy usunę linijkę ze skryptu:

minDate: "@DateTime.Now",

wszystko wraca do normy. Mam normalną datę. Jednak nie mam wtedy wyszarzonych dni wstecz. Co może być z tym nie tak?

2

Użyj kompatybilnego formatu daty, np.: @DateTime.Now.ToString("yyyy-MM-dd"), bo obecnie to JS dostaje coś w rodzaju 07/14/2020 11:56:23 i pewnie to sobie jakoś dziwnie przelicza.

0

Gdy zmieniłem na @DateTime.Now.ToString("yyyy-MM-dd") miałem nadal dziwne wyniki. natomiast kiedy zmieniłem na
minDate: "@DateTime.Now.ToString("dd.MM.yyyy")" otrzymuje poprawnie wyszarzone daty. jednak podczas wyboru któregokolwiek dnia otrzymuję błąd walidacji modelu:
screenshot-20200714124251.png

[Required(ErrorMessage ="Wymagane - Data rezerwacji")]
           [Display(Name ="Data rezerwacji")]
           [DataType(DataType.Date, ErrorMessage ="Data jest nieprawidłowa")]
           public DateTime? ReservationDate { get; set; }

EDIT:
Z tego co wyczytałem, powinienem w pliku web.config zmienić ustawienia regionalne na en-US. Jednak w projekcie nigdzie nie mam takowego pliku. Możecie podpowiedzieć gdzie on się znajduje?

1

Zajęło mi to cały dzień, ale problem rozwiązany i okazał się dość banalny.

public void ConfigureServices(IServiceCollection services)
{
            services.Configure<RequestLocalizationOptions>(options =>
            {
                options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("pl-PL");
                options.SupportedCultures = new List<CultureInfo> { new CultureInfo("en-US"), new CultureInfo("pl-PL") };
            });

oraz

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
     // ...
     app.UseRequestLocalization();
1

No bo w .NET Core nie ma web.config jest appsettings.json i raczej nie do tego służy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1