相关疑难解决方法(0)

Javascript来自字符串的日期,提供从Chrome到Firefox的不同输出

我试着写一些JavaScript代码来格式化,因为我希望有一个日期,但我有麻烦使它在Firefox浏览器(它的工作,因为我想在Chrome).

我在表单中的输入是05/01/13(mm/dd/yy),我想要2013-05-01(yyyy/mm/dd).

为此,我所做的是这样的:

var formDate = document.getElementById("start").value;
var myDate = new Date(formDate);
var startDate = new Date();

startDate.setMonth(myDate.getMonth() + 1);
startDate.setFullYear(myDate.getFullYear());
var FormattedDate = startDate.getFullYear() + "-" + ((startDate.getMonth() <= 10) ? "0" : "") + startDate.getMonth() + "-01"; // the day is always 01

alert(FormattedDate);
Run Code Online (Sandbox Code Playgroud)

您可以在这两种浏览器上试用它:http://jsfiddle.net/j4BLH/

在谷歌浏览器上,这段代码2013-05-01以五月为例,但在Firefox上,我有1913-05-01.

我知道我可以编写类似的内容,"20" + startDate.getYear()但我想知道为什么结果与Chrome不同?也许如果你有更好的方法来编写我粘贴在这里的代码,请告诉我:)

谢谢 !

javascript firefox google-chrome date

6
推荐指数
1
解决办法
1456
查看次数

使用当地时区分析YYYY-MM-DD日期

在javascript中,如果我指定日期为MM/DD/YYYY,我可以用new Date()它来解析它作为本地时区:

>>> new Date('01/01/1970')
Date {Thu Jan 01 1970 00:00:00 GMT-0500 (EST)}
Run Code Online (Sandbox Code Playgroud)

但是,如果我将日期指定为YYYY-MM-DD,则假定我在UTC时区中给出日期:

>>> new Date('1970-01-01')
Date {Wed Dec 31 1969 19:00:00 GMT-0500 (EST)}
Run Code Online (Sandbox Code Playgroud)

在解析'YYYY-MM-DD'日期时,是否有一种简单的方法可以告诉日期解析器使用本地时区?或者我是否需要先使用.replace(/^(\d{4})-(\d{2})-(\d{2})$/, '$2/$3/$1')它来修复它?

javascript date

6
推荐指数
2
解决办法
1767
查看次数

如何检查一个日期小于或等于Javascript中的另一个日期

我很难检查一个日期是否小于或等于另一个日期.

这是我的代码,

var bftStartDt = input1[0]; //This is a string with value "01-Jul-2007"
var bftEndDt = input1[4]; //This is a string with value "01-Jul-1942"

var strtDt = new Date(bftStartDt);
var endDt = new Date(bftEndDt);
var flag = 0; // false

if (endDt <= strtDt){
   flag = 1; // true
}
Run Code Online (Sandbox Code Playgroud)

应该什么时候才进入if语句?我在这里想念的是什么

谢谢

javascript date

6
推荐指数
1
解决办法
2万
查看次数

格式日期从"MMM dd,yyyy HH:mm:ss a"到"MM.dd

我想格式化日期从"MMM dd,yyyy HH:mm:ss a"到"MM.dd".我有以下代码

SimpleDateFormat ft = new SimpleDateFormat ("MMM dd, yyyy hh:mm:ss a");
t = ft.parse(date); //Date is Sep 16, 2015 10:34:23 AM and of type string.
ft.applyPattern("MM.dd"); 
Run Code Online (Sandbox Code Playgroud)

但是我得到了例外 t = ft.parse(date);

请帮忙

java datetime

6
推荐指数
1
解决办法
3万
查看次数

Date.getDay()返回不同的值

我觉得我在这里错过了一些东西.

Date.getDay()方法应该返回0-6之间的值.星期日为0,星期六为6.

现在我有两个日期,两个都是'星期日',应该返回0.

new Date('1990-11-11').getDay() // returns 6 
new Date('2016-1-3').getDay() // returns 0
Run Code Online (Sandbox Code Playgroud)

造成这种差异的原因是什么?我敢问这个.getDay()方法的有效性,但我无法弄清楚发生了什么.

编辑

> new Date('1990-11-11')
Sat Nov 10 1990 17:00:00 GMT-0700 (MST)
> new Date('2016-01-03')
Sat Jan 02 2016 17:00:00 GMT-0700 (MST)
> new Date('2016-1-3')    // they say this format is wrong, but it returns the right date
Sun Jan 03 2016 00:00:00 GMT-0700 (MST)
Run Code Online (Sandbox Code Playgroud)

我不明白发生了什么.1月3日是星期日,1990年11月11日是星期日.为什么周六说?

javascript date

6
推荐指数
1
解决办法
778
查看次数

在Chrome中解析字符串时,为什么新的Date()对“ YYYY-MM-DD”进行不同的处理?

在将字符串解析为日期时,我在Chrome中发现了一个有趣的怪癖。这些字符串以相同的方式解析:

new Date("2020 01 01")
=> Wed Jan 01 2020 00:00:00 GMT-0500 (GMT-05:00)

new Date("2020-01 01")
=> Wed Jan 01 2020 00:00:00 GMT-0500 (GMT-05:00)

new Date("2020 01-01")
=> Wed Jan 01 2020 00:00:00 GMT-0500 (GMT-05:00)
Run Code Online (Sandbox Code Playgroud)

但不是这个,它又落后了几个小时:

new Date("2020-01-03")
=> Tue Dec 31 2019 19:00:00 GMT-0500 (GMT-05:00)
Run Code Online (Sandbox Code Playgroud)

这是具有相同代码的codepen

为什么会这样?

编辑:这是Chrome 73.0.3683.103。

Edit2:在节点LTS中,问题已解决:

> new Date("2020 01 01")
2020-01-01T05:00:00.000Z

> new Date("2020-01 01")
2020-01-01T05:00:00.000Z

> new Date("2020 01-01")
2020-01-01T05:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

> new Date("2020-01-01")
2020-01-01T00:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

在Safari 12.1中,前三个无效:

new Date("2020 …
Run Code Online (Sandbox Code Playgroud)

javascript date ecma

6
推荐指数
0
解决办法
63
查看次数

使用Jquery从日期获取星期几?

我现在已经是aswer之前,问题是我从输入的日期不是当前日期.

我需要得到一周的一天.目前我得到这种格式的日期:

11/09/2013
Run Code Online (Sandbox Code Playgroud)

但我希望它像:

Saturday/02/2013. 
Run Code Online (Sandbox Code Playgroud)

我正在使用datepicker来显示日历,所以它可能是一些解决方案,可以帮助我使用相同的插件.

javascript jquery

5
推荐指数
1
解决办法
2万
查看次数

JavaScript/jQuery:减去小时和分钟

我拥有的:

三个时间输入,包括开始时间、结束时间以及两者之间的差值。

<input type="time" name="starttime" id="starttime">
<input type="time" name="endtime" id="endtime">
<input type="time" name="duration" id="duration" disabled>
Run Code Online (Sandbox Code Playgroud)

我需要的:

当开始或结束时间更改时,差异会显示在第三个输入中。

例如 23:15 - 20:00 = 03:15。

我尝试过的:

到目前为止,我只能给出正确的小时数,而不能给出分钟数。

<script>
    jQuery(document).ready(function($) {

        function calculateTime() {

        // Get values.
        var valuestart = $("#starttime").val();
        var valuestop = $("#endtime").val();

        // Create date format.          
        var timeStart = new Date("01/01/2007 " + valuestart);
        var timeEnd = new Date("01/01/2007 " + valuestop);

        // Subtract.
        var difference = timeEnd - timeStart;             

        // Attempt 1: Only gets hours.
        //var difference_as_hours = difference …
Run Code Online (Sandbox Code Playgroud)

javascript jquery date

5
推荐指数
1
解决办法
4093
查看次数

日期对象行为

在JavaScript中,对于不同的时区和不同的表示法,日期对象的结果是不同的.

例如.

var res= "2018-08"; 
var dat=new Date(res);  
Run Code Online (Sandbox Code Playgroud)

结果是:

Tue Jul 31 2018 22:00:00 GMT-0200 (West Greenland Summer Time)  for GMT-0200  Time Zone 
Run Code Online (Sandbox Code Playgroud)

 Wed Aug 01  2018 05:30:00 GMT+0530 (India Standard Time)
Run Code Online (Sandbox Code Playgroud)

但当

var res= "2018/08"; 
Run Code Online (Sandbox Code Playgroud)

我们的日期相同

Wed Aug 01 2018 00:00:00 GMT+0530 (India Standard Time)

Wed Aug 01 2018 00:00:00 GMT-0300 (Atlantic Daylight Time)
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释我为什么它不是常数当我们给" - "作为分隔符

javascript datetime date

5
推荐指数
1
解决办法
53
查看次数

javascript 中的 Date 构造函数对字符串“0”到“110”进行字符串解析背后的逻辑是什么?

我试图看看依靠执行 aconst myNewDate = new Date(dateString)然后使用 an的结果_.isDate(myNewDate)是否足以验证它是“有效日期”,但后来我想:我可以收到什么dateString

我想到要执行以下操作: for(i=0;i<110;i++) { console.log(i, new Date(String(i)))}

这是我得到的结果:

0 2000-01-01T06:00:00.000Z
1 2001-01-01T06:00:00.000Z
2 2001-02-01T06:00:00.000Z
3 2001-03-01T06:00:00.000Z
4 2001-04-01T06:00:00.000Z
5 2001-05-01T05:00:00.000Z
6 2001-06-01T05:00:00.000Z
7 2001-07-01T05:00:00.000Z
8 2001-08-01T05:00:00.000Z
9 2001-09-01T05:00:00.000Z
10 2001-10-01T05:00:00.000Z
11 2001-11-01T06:00:00.000Z
12 2001-12-01T06:00:00.000Z
13 Invalid Date
14 Invalid Date
15 Invalid Date
16 Invalid Date
17 Invalid Date
18 Invalid Date
19 Invalid Date
20 Invalid Date
21 Invalid Date
22 Invalid Date
23 Invalid Date
24 …
Run Code Online (Sandbox Code Playgroud)

javascript time parsing date timezone-offset

5
推荐指数
1
解决办法
265
查看次数