在我的应用程序中,我需要每个日期的对象地图。由于打字稿既有 aMap又有 aDate对象,我希望这很简单。
let map: Map<Date, MyObject> = new Map<Date, MyObject>();
Run Code Online (Sandbox Code Playgroud)
并用于set添加新的键和值对。但后来我意识到我不能get使用日期的值,除非我使用完全相同的实例Date。
我用它编写了一个单元测试:
it('Should not be a problem', () => {
let d1: Date = new Date(2019, 11, 25); // Christmas day
let d2: Date = new Date(2019, 11, 25); // Same Christmas day?
let m: Map<Date, string> = new Map<Date, string>();
m.set(d1, "X");
expect(m.get(d1)).toBe("X"); // <- This is OK.
expect(m.get(d2)).toBe("X"); // <- This test fails.
});
Run Code Online (Sandbox Code Playgroud)
为什么除非使用完全相同的实例,否则我无法从地图中获取值?
为什么在第一种情况下,相等运算符返回false?
var a = new Date(2010, 10, 10);
var b = new Date(2010, 10, 10);
alert(a == b); // <- returns false
alert(a.getTime() == b.getTime()); // returns true
Run Code Online (Sandbox Code Playgroud)
为什么?
通过表格,我得到两个值,如
Start datetime = '01/12/2013 12:00:00 AM' and
End datetime = '02/12/2013 12:00:00 AM'.
Run Code Online (Sandbox Code Playgroud)
如何验证开始日期时间必须小于javascript中的结束日期时间?
有人能帮助我吗?这是我的代码
var $from=$("#fromDate").datepicker('getDate');
var $to =$("#toDate").datepicker('getDate');
if($from>$to)
alert("from date shouldn't greater than To date");
Run Code Online (Sandbox Code Playgroud)
它是在同一年的两个日期工作.否则例如fromDate ='1/12/2012'(dd/mm/yyyy)toDate = '18/6/2013'(dd/mm/yyyy),当你检查条件时,它不起作用.它抛出警报,我给了.
我目前正在尝试查看日期值是否设置为今天的日期或更高.
var date = document.getElementById("inputDate").value;
var varDate = new Date(date); //dd-mm-YYYY
var today = new Date();
if(varDate >= today) {
//Do something..
alert("Working!");
}
Run Code Online (Sandbox Code Playgroud)
日期格式dd-mm-YYYY
上面的当前代码不起作用.
我的时区下午好.
我想比较两个日期,其中一个是由用户插入的,另一个是当天.代码片段:
var dateString = "2012-01-03"
var date = new Date(dateString);
date < new Date() ? true : false;
Run Code Online (Sandbox Code Playgroud)
这返回true,我认为在引擎盖下,Date对象都被转换为毫秒然后进行比较,如果是这样,"今天"对象因为小时和分钟而变大.所以我想做的就是比较日期到了月份和年份.什么是最好的方法?创建一个新的Date对象,然后在比较之前将小时分钟和毫秒重置为零?或者从两个日期对象中提取月份和年份的日期并进行比较?有没有更好的方法?
在此先感谢最诚挚的问候.新年快乐
我看到这个问题经常被问到常规的javascript数组,但是如果有一个日期数组,那么答案似乎都无法解决.
我可以通过试验错误地解决这个问题,但如果我问的话,我确实看到了其他人的一些好处.
基本上如果你有一个javascript数组的日期可能有重复,需要过滤到一个没有重复的数组,最好的方法是什么?
我尝试过ES6解决方案,Array.from(new Set(arr))但它只返回相同的数组.
我也试过了
Array.prototype.unique = function() {
var a = [];
for (var i=0, l=this.length; i<l; i++)
if (a.indexOf(this[i]) === -1)
a.push(this[i]);
return a;
}
Run Code Online (Sandbox Code Playgroud)
两者都来自数组中的唯一值
但是没有工作,看起来像是indexOf在日期对象上不起作用.
这是我的数组生成atm的方式
//this is an array generated from ajax data,
//its a year over year comparison with a separate year,
//so to create a reliable date objects I force it to use the same year.
data.map(d => {
dp = new Date(Date.parse(d.date + '-' + d.year)); …Run Code Online (Sandbox Code Playgroud) 我想基于日期选择器启用/禁用按钮,我有一个像这样的检查设置:
public dateChanged = false;
public availableFromDate: Date;
public availableToDate: Date;
initDatepickers() {
const currentDay = new Date();
this.availableFromDate = currentDay;
this.availableToDate = currentDay;
}
private dateCheck() {
if ((this.availableFromDate > this.availableToDate) || (this.availableFromDate === this.availableToDate)) {
this.dateChanged = false;
} else {
this.dateChanged = true;
}
console.log(this.dateChanged);
console.log(`Available from - ${this.availableFromDate}`);
console.log(`Available to - ${this.availableToDate}`);
}
Run Code Online (Sandbox Code Playgroud)
检查工作正常,但是从日期开始时按钮启用了!如果将值记录到控制台,则禁用按钮,因为init值为false,而不是因为检查有效.
两个日期对象的初始化方式不同(console.log dump):
true
clinics-upload-documents.component.ts:73 Available from - Fri Feb 22 2019 00:00:00 GMT+0100 (Central European Standard Time)
clinics-upload-documents.component.ts:74 Available to - Fri …Run Code Online (Sandbox Code Playgroud) 鉴于以下数据结构:
var MyData = [
{"id": 1, "status": "live", dateCreated: "12:00:00 01/02/2016"},
{"id": 2, "status": "draft", dateCreated: "13:00:00 03/12/2015"},
{"id": 3, "status": "ready", dateCreated: "16:00:00 04/09/2016"},
{"id": 4, "status": "ready", dateCreated: "10:00:00 01/10/2016"},
{"id": 5, "status": "live", dateCreated: "09:00:00 05/07/2015"},
{"id": 6, "status": "draft", dateCreated: "08:00:00 11/03/2016"},
{"id": 7, "status": "ready", dateCreated: "20:00:00 12/02/2016"}
]
Run Code Online (Sandbox Code Playgroud)
我正在尝试对它进行排序并将其分组到以下条件中:
到目前为止我所拥有的:
// this object will help us define our custom order as it's not alphabetical
const itemOrder = {
'live': 1, …Run Code Online (Sandbox Code Playgroud) 使用id的第一个具有格式
var checkindate = $('#check-in').text();
28-07-2011
Run Code Online (Sandbox Code Playgroud)
然后我使用当前日期
var now = new Date();
Run Code Online (Sandbox Code Playgroud)
它有格式
Wed Jul 20 2011 19:09:46 GMT+0530 (IST)
Run Code Online (Sandbox Code Playgroud)
我想从这两个日期得到日期差异.在这种情况下它是8.我搜索了很多,找不到答案,请帮助.......:'(
javascript ×9
date ×4
datetime ×2
jquery ×2
typescript ×2
angular ×1
arrays ×1
comparison ×1
dictionary ×1
immutable.js ×1
php ×1
validation ×1