Si configuro el idioma de mi navegador en español (México), entonces mi formato de fecha y hora cultural de C# muestra la parte AM como "am" en lugar del "AM" habitual.
Intenté usar los formatos moment.js localizados de "L, LT y LTS", pero esos no me dan el "am" deseado. A continuación, intenté pasar un formato de fecha y hora (sin la parte AM/PM, consulte dateTimeFormatInCulture a continuación) de mi código C# al JavaScript y luego agregué el AM/PM deseado cada vez que se selecciona una fecha y hora. Eso funcionó parcialmente, pero luego el tiempo no era el correcto en la tarde porque estaba agregando la porción AM/PM después del hecho. Luego encontré la opción de función parseInputDate, pero parece que eso no funcionará para lo que quiero que haga.
$("#dp").datetimepicker({ daysOfWeekDisabled: [0, 1, 6], useCurrent: false, useSeconds: true, format: dateTimeFormatInCulture // "DD/MM/YYYY hh:mm:ss", parseInputDate: function(inputDate) { alert(inputDate); $("#txtBox").val(moment(inputDate).format(dateTimeFormatInCulture) + (amDisplay != "" ? " " + (moment(inputDate).hour() > 11 ? pmDisplay : amDisplay) : "")); return inputDate; } });También he usado el selector de fecha y hora modificado y una función activada al hacer clic en el ícono para agregar el valor AM/PM correcto. Funciona parcialmente, pero como dije anteriormente, la hora no era la correcta en la tarde.
$('#dp').on("change.datetimepicker", ({date, oldDate}) => { var inputDate = moment(Date.parse(date)); $("#txtBox").val(moment(inputDate).format(dateTimeFormatInCulture) + (amDisplay != "" ? " " + (moment(inputDate).hour() > 11 ? pmDisplay : amDisplay) : "")); }); $('[data-toggle="datetimepicker"]').on('click', function() { var inputDate = moment(Date.parse($("#dp").datetimepicker("date"))); $("#txtBox").val(moment(inputDate).format(dateTimeFormatInCulture) + (amDisplay != "" ? " " + (moment(inputDate).hour() > 11 ? pmDisplay : amDisplay) : "")); });¿Hay alguna manera de hacer lo que quiero hacer?