Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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日期对象的问题_Javascript_Date - Fatal编程技术网

javascript日期对象的问题

javascript日期对象的问题,javascript,date,Javascript,Date,我在初始化javascript日期对象时遇到了一个奇怪的问题,不管我初始化到什么,它都显示日期为1970年1月1日05:30 这是我尝试初始化的方式 var d=new date(27-02-1989); 警报“d”显示1970年1月1日……,有时它也会接受从数据库传递的日期,但格式为mm/dd/yyyy,而不是我想要的格式,即dd/mm/yyyy 这个问题突然出现了,因为前几天一切都很顺利,但今天在项目开始后(2天后),这个问题让我很恼火根据您可以尝试的: new Date() new Da

我在初始化javascript日期对象时遇到了一个奇怪的问题,不管我初始化到什么,它都显示日期为1970年1月1日05:30

这是我尝试初始化的方式

var d=new date(27-02-1989);
警报“d”显示1970年1月1日……,有时它也会接受从数据库传递的日期,但格式为mm/dd/yyyy,而不是我想要的格式,即dd/mm/yyyy

这个问题突然出现了,因为前几天一切都很顺利,但今天在项目开始后(2天后),这个问题让我很恼火

根据您可以尝试的:

new Date()
new Date(milliseconds)
new Date(dateString)
new Date(year, month, day [, hour, minute, second, millisecond ])

因此,对于您的案例使用(编辑:您需要记住月份是以零为基础的)

请注意-使用
日期
(大写D)

根据您可以尝试:

new Date()
new Date(milliseconds)
new Date(dateString)
new Date(year, month, day [, hour, minute, second, millisecond ])

因此,对于您的案例使用(编辑:您需要记住月份是以零为基础的)


请注意-使用
Date
(大写D)

您正在使用负整数值(
27-02-1989==-1964
)进行初始化。
Date
对象的构造函数采用列出的参数


如果要传递字符串,它们需要采用符合RFC2822的格式(请参阅)。

您正在使用负整数值(
27-02-1989==-1964
)进行初始化。
Date
对象的构造函数采用列出的参数

如果要传递字符串,它们需要采用符合RFC2822的格式(请参阅)

证明:

证明:

首先

var d=new date(27-02-1989); 
javascript中的表达式完全错误,而且即使我们重写得更正确:

var d=new Date('27-02-1989');
无法在js中以本机方式解析此日期字符串

以下是您可以尝试的解决方案:

new Date()
new Date(milliseconds)
new Date(dateString)
new Date(year, month, day [, hour, minute, second, millisecond ])
  • 将字符串转换为ISO8601:YYYY-mm-dd,这可以由大多数现代broswers解析,也可以使用许多js库进行polyfill

  • 按“-”拆分字符串,然后使用日期构造函数
    新日期(年、月、日)

  • 拆分字符串并在
    new Date()
    对象上使用
    setDate、setMonth、setYear
    方法

    请注意,在最后两种方法中,您需要从月份值中扣除1,因为月份是以零为基础的(0表示一月,11表示十二月)

首先

var d=new date(27-02-1989); 
javascript中的表达式完全错误,而且即使我们重写得更正确:

var d=new Date('27-02-1989');
无法在js中以本机方式解析此日期字符串

以下是您可以尝试的解决方案:

new Date()
new Date(milliseconds)
new Date(dateString)
new Date(year, month, day [, hour, minute, second, millisecond ])
  • 将字符串转换为ISO8601:YYYY-mm-dd,这可以由大多数现代broswers解析,也可以使用许多js库进行polyfill

  • 按“-”拆分字符串,然后使用日期构造函数
    新日期(年、月、日)

  • 拆分字符串并在
    new Date()
    对象上使用
    setDate、setMonth、setYear
    方法

    请注意,在最后两种方法中,您需要从月份值中扣除1,因为月份是以零为基础的(0表示一月,11表示十二月)


    • 我知道你已经接受了答案,但这不是你能做的最好的答案。没有一种格式可以被所有常用浏览器正确解析,接受的答案至少在IE8中会失败

      将字符串转换为日期的唯一安全方法是解析它,例如

      var s = '27-02-1989';
      var bits = s.split('-');
      var date = new Date(bits[2], --bits[1], bits[0]);
      

      我看你已经接受了答案,但这不是你能做的最好的。没有一种格式可以被所有常用浏览器正确解析,接受的答案至少在IE8中会失败

      将字符串转换为日期的唯一安全方法是解析它,例如

      var s = '27-02-1989';
      var bits = s.split('-');
      var date = new Date(bits[2], --bits[1], bits[0]);
      

      1970年1月1日是unixtime的起点-通常表示某个东西的评估结果为零或为假-在您的控制台中尝试新日期(false)您是否尝试过日期(“27-02-1989”)?是的,引号是有效的,但它仍然采用mm/dd/yyyy的格式。我如何更改它?1970年1月1日是unixtime的起点-通常表示某个值为零或为假-在控制台中尝试新日期(假)您是否尝试过日期(“27-02-1989”)?是的,引号是有效的,但它仍然采用mm/dd/yyyy的格式。我如何更改它?你需要记住月份是零基的:新日期(1989,02,27)将给他3月27日,而不是2月你需要记住月份是零基的:新日期(1989,02,27)将给他3月27日,不是2月报价有效,但你能告诉我如何恢复我的原始默认格式,即dd/mm/yyyyyuh吗?我以为那是原始格式?我不确定这是否是您需要的,但这里是:
      '1989-02-27'.split('-').reverse().join('-')。我强烈建议您理解这段代码的功能。是的,我使用了字符串,谢谢,是的,它是原始格式,可能有人更改了区域设置,这就是为什么我使用mm.dd.yyyy作为默认值-1 d/m/y不是“美国”格式,可能是m/d/y。不要使用Date.parse解析字符串,它在ES3中被指定为依赖于实现,ES5中的一种ISO8601格式,并且没有一种格式可以在“流行”浏览器中使用。手动解析字符串。需要一些帮助来操作字符串,我拥有的字符串是dd-mm-yyy-hh:mm:ss,我只想反转并连接mm和dd,您提供的代码将整个字符串反转为hh:mm:ss-yyyy-mm-dd,我希望输出为mm-dd-yyyy…..如果我能告诉javascript除了dd/mm/yyyy以外的其他格式,那么效果会更好。引号可以工作,但是你能告诉我如何恢复我的原始默认格式,即dd/mm/yyyyyuh吗?我以为那是原始格式?我不确定这是否是您需要的,但这里是:
      '1989-02-27'.split('-').reverse().join('-')。我强烈建议您理解这段代码的功能。是的,我使用了字符串,谢谢,是的,它是原始格式,可能有人更改了区域设置,这就是为什么我使用mm.dd.yyyy作为默认值-1 d/m/y不是“美国”格式,可能是m/d/y。不要使用Date.parse来分析字符串,