Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javascript日期转换为c日期时间_Javascript_C#_Datetime - Fatal编程技术网

将javascript日期转换为c日期时间

将javascript日期转换为c日期时间,javascript,c#,datetime,Javascript,C#,Datetime,我正在尝试将javascript日期转换为c日期时间 JavaScript代码 C代码 我收到无效的日期时间格式异常。我研究了internet上的其他选项,但没有找到关于如何将JavaScript datetime转换为C datetime的任何具体答案。mm表示分钟,您希望mm表示月份: var dt = DateTime.ParseExact(JSDateString , "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); 如图所示,

我正在尝试将javascript日期转换为c日期时间

JavaScript代码 C代码 我收到无效的日期时间格式异常。我研究了internet上的其他选项,但没有找到关于如何将JavaScript datetime转换为C datetime的任何具体答案。

mm表示分钟,您希望mm表示月份:

var dt = DateTime.ParseExact(JSDateString , "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
如图所示,mm代表00-59分钟,而mm代表01-12月

var JSDateString = "2016-04-02 17:15:45";
var formatCode = "yyyy-MM-dd HH:mm:ss";

var dt = DateTime.ParseExact(JSDateString , formatCode, CultureInfo.InvariantCulture);

您可以看到mm的使用时间为分钟,因为您已经在HH:mm:ss中使用了它。

这可能对JavaScript方面有所帮助:

function getDate() {
  var date = new Date(),
    year = date.getFullYear(),
    month = (date.getMonth() + 1).toString(),
    formatedMonth = (month.length === 1) ? ("0" + month) : month,
    day = date.getDate().toString(),
    formatedDay = (day.length === 1) ? ("0" + day) : day,
    hour = date.getHours().toString(),
    formatedHour = (hour.length === 1) ? ("0" + hour) : hour,
    minute = date.getMinutes().toString(),
    formatedMinute = (minute.length === 1) ? ("0" + minute) : minute,
    second = date.getSeconds().toString(),
    formatedSecond = (second.length === 1) ? ("0" + second) : second;
  return year + "-" + formatedMonth + "-" + formatedDay + " " + formatedHour + ':' + formatedMinute + ':' + formatedSecond;
};
在此处查看小提琴:


我在构建应用程序时也做过类似的事情,因为不允许添加第三方JS,并且需要支持IE8。

应该将其转换为timestamp@Steve是的,在这种情况下,还要注意客户端和服务器之间可能存在的时区差异。@r1版本时间戳是时区安全的。除非您想要服务器时间而不是本地时间time@Steve时间戳是UTC。但问题是JavaScript不知道如何处理时区,因此如果您在不同于浏览器时区的时区中显示日期,它会给您一个错误的时间戳,因为它不是UTC。@R1Versionde op正在尝试解析从js time发送到c time的日期时间。谢谢。不过,在C端fiddle上进行语法分析时,尾随0非常有用
var JSDateString = "2016-04-02 17:15:45";
var formatCode = "yyyy-MM-dd HH:mm:ss";

var dt = DateTime.ParseExact(JSDateString , formatCode, CultureInfo.InvariantCulture);
function getDate() {
  var date = new Date(),
    year = date.getFullYear(),
    month = (date.getMonth() + 1).toString(),
    formatedMonth = (month.length === 1) ? ("0" + month) : month,
    day = date.getDate().toString(),
    formatedDay = (day.length === 1) ? ("0" + day) : day,
    hour = date.getHours().toString(),
    formatedHour = (hour.length === 1) ? ("0" + hour) : hour,
    minute = date.getMinutes().toString(),
    formatedMinute = (minute.length === 1) ? ("0" + minute) : minute,
    second = date.getSeconds().toString(),
    formatedSecond = (second.length === 1) ? ("0" + second) : second;
  return year + "-" + formatedMonth + "-" + formatedDay + " " + formatedHour + ':' + formatedMinute + ':' + formatedSecond;
};