因為每次客戶說想要用民國年選擇或是顯示都覺得很麻煩,就自己拿jquery-ui再做修改
請自行取用w
TaiwanDateTimePicker GitHub 專案
此專案展示如何在 ASP.NET Core MVC 中整合民國(ROC)與西元日期格式選擇器,並新增 時間選擇功能。
前端使用 jQuery UI + Timepicker Addon,支援動態日期與時間轉換。

HomeController.cs
ExampleViewModel.cs
Demo.cshtml
taiwan-datepicker.js
jquery-ui-timepicker-addon
DateTime)/Home/Demo 頁面<form asp-action="DemoSubmit" asp-controller="Home">
  <input asp-for="TWExampleDateString" id="ExampleDate" type="text" class="form-control" />
  <input asp-for="TWExampleDateWithTimeString" id="ExampleDateWithTime" type="text" class="form-control" />
  <button type="submit">送出</button>
</form>
// 前端顯示用TWExampleDateString
//後端會直接set到DateTime格式的 ExampleDate 
//不會因為前端轉換影響取值,後端都取DateTime格式的就好 很方便吧w
        public  DateTime ExampleDate { get; set; }
        public string TWExampleDateString
        {
            get
            {
                int taiwanYear = ExampleDate.Year - 1911;
                return $"{taiwanYear}-{ExampleDate.Month:D2}-{ExampleDate.Day:D2}";
            }
            set
            {
                if (!string.IsNullOrWhiteSpace(value))
                {
                    var parts = value.Split('-');
                    if (parts.Length == 3)
                    {
                        int taiwanYear = int.Parse(parts[0]);
                        int year = taiwanYear + 1911;
                        int month = int.Parse(parts[1]);
                        int day = int.Parse(parts[2]);
                        ExampleDate = new DateTime(year, month, day);
                    }
                }
                else
                {
                    ExampleDate = DateTime.MinValue;
                }
            }
        }
// 顯示民國格式
int taiwanYear = ExampleDate.Year - 1911;
return $"{taiwanYear}-{ExampleDate.Month:D2}-{ExampleDate.Day:D2}";
// 轉換民國回 DateTime
if (!string.IsNullOrWhiteSpace(value))
{
    var parts = value.Split('-');
    if (parts.Length == 3)
    {
        int taiwanYear = int.Parse(parts[0]);
        int year = taiwanYear + 1911;
        int month = int.Parse(parts[1]);
        int day = int.Parse(parts[2]);
        ExampleDate = new DateTime(year, month, day);
    }
}
<link href="~/css/jquery-ui.css" rel="stylesheet" />
<script src="~/js/jquery.min.js"></script>
<script src="~/js/jquery-ui.min.js"></script>
<script src="~/js/jquery-ui-timepicker-addon.min.js"></script>
<script src="~/js/taiwan-datepicker.js"></script>
document.addEventListener("DOMContentLoaded", function () {
  $("#ExampleDate").taiwanDatepicker();
  $("#ExampleDateWithTime").taiwanDatepickerWithTime();
});
<input id="ExampleDate" type="text" />
$("#ExampleDate").taiwanDatepicker();
<input class="MeetDateTime" type="text" />
$(".MeetDateTime").taiwanDatepicker();
public DateTime ExampleDate { get; set; }
catch (Exception ex)
{
    LogHelper.LogExceptionMessage(ex);
}